66 lines
3.0 KiB
CMake
66 lines
3.0 KiB
CMake
|
# Название основной цели и имени программы в текущем каталоге
|
|||
|
set(TRGT myx-cmake-example-qt5-gui)
|
|||
|
|
|||
|
# cmake-format: off
|
|||
|
###
|
|||
|
# Списки файлов проекта
|
|||
|
###
|
|||
|
# Исходные коды
|
|||
|
set(TRGT_cpp
|
|||
|
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
|||
|
${CMAKE_CURRENT_SOURCE_DIR}/test_window.cpp)
|
|||
|
|
|||
|
# Заголовочные файлы, для которых необходима обработка препроцессором moc
|
|||
|
# (содержат класс, унаследованный от QObject, использующий сигналы и/или слоты)
|
|||
|
set(TRGT_moc_hpp
|
|||
|
${CMAKE_CURRENT_SOURCE_DIR}/test_window.hpp)
|
|||
|
|
|||
|
# Другие заголовочные файлы
|
|||
|
set(TRGT_hpp)
|
|||
|
|
|||
|
# Файлы с описанием графического интерфейса для Qt
|
|||
|
set(TRGT_ui
|
|||
|
${CMAKE_CURRENT_SOURCE_DIR}/test_window.ui)
|
|||
|
|
|||
|
# Файлы описания ресурсов, включаемых в исполняемый файл
|
|||
|
set(TRGT_qrc
|
|||
|
${CMAKE_SOURCE_DIR}/files/share/icon.qrc)
|
|||
|
###
|
|||
|
# Конец списков файлов
|
|||
|
###
|
|||
|
# cmake-format: on
|
|||
|
|
|||
|
set(TRGT_headers ${TRGT_hpp} ${TRGT_moc_hpp})
|
|||
|
|
|||
|
# Правило для автоматической генерации препроцессором uic
|
|||
|
qt5_wrap_ui(TRGT_ui_h ${TRGT_ui})
|
|||
|
|
|||
|
# Правило для автоматической генерации препроцессором moc
|
|||
|
qt5_wrap_cpp(TRGT_moc_cpp ${TRGT_moc_hpp})
|
|||
|
|
|||
|
# Поиск строк для локализации в файлах, перечисленных в ${TRGT_cpp} ${TRGT_ui}
|
|||
|
# Создание и обновление файлов переводов в каталоге ${CMAKE_SOURCE_DIR}/l10n
|
|||
|
# Интеграция переводов в исполняемый файл для подключения классом QTranslator
|
|||
|
myx_cmake_qt5_translation(TRGT_qrc_cpp
|
|||
|
OUTPUT_DIR ${CMAKE_SOURCE_DIR}/l10n
|
|||
|
BASE_NAME ${TRGT}
|
|||
|
SOURCES ${TRGT_cpp} ${TRGT_ui}
|
|||
|
LANGUAGES ru_RU)
|
|||
|
|
|||
|
# Правило для автоматической генерации препроцессором qrc
|
|||
|
# (обязательно после вызова функции qt5_translation, если она есть,
|
|||
|
# так как она инициализирует переменную со списком ресурсов)
|
|||
|
qt5_add_resources(TRGT_qrc_cpp ${TRGT_qrc})
|
|||
|
|
|||
|
# Функция для создания цели, результатом которой будет сборка приложения
|
|||
|
add_executable(${TRGT} ${TRGT_headers} ${TRGT_ui_h} ${TRGT_moc_cpp} ${TRGT_qrc_cpp} ${TRGT_cpp})
|
|||
|
myx_cmake_common_target_properties(${TRGT})
|
|||
|
|
|||
|
# Qt5: подключение заголовочных файлов
|
|||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
|||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Gui_INCLUDE_DIRS})
|
|||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Widgets_INCLUDE_DIRS})
|
|||
|
|
|||
|
# Qt5: подключение библиотек
|
|||
|
target_link_libraries(${TRGT} Qt5::Core Qt5::Gui Qt5::Widgets)
|