47 lines
2.4 KiB
CMake
47 lines
2.4 KiB
CMake
# Название основной цели и имя библиотеки в текущем каталоге
|
||
set(TRGT cmlib-example-app-qt5-con)
|
||
|
||
# Список файлов исходных текстов
|
||
set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
||
|
||
# Правила для создания файла ресурсов с вложенными файлами переводов
|
||
qt5_translation(
|
||
TRGT_qrc
|
||
OUTPUT_DIR ${CMAKE_SOURCE_DIR}/l10n BASE_NAME ${TRGT}
|
||
SOURCES ${TRGT_cpp} LANGUAGES ru_RU)
|
||
|
||
# Путь поиска библиотек созданных при компиляции проекта,
|
||
# включая библиотеки из подключённых внешних проектов, например MyXLib
|
||
# Функция link_directories обязательно должна находиться перед
|
||
# функцией add_executable, иначе компоновка не может быть выполнена
|
||
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||
|
||
# Функция для создания цели, результатом которой будет сборка приложения
|
||
add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc})
|
||
common_target_properties(${TRGT})
|
||
|
||
# Qt5: подключение заголовочных файлов
|
||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||
|
||
# Qt5: подключение библиотек
|
||
target_link_libraries(${TRGT} Qt5::Core)
|
||
|
||
# Добавление к пути поиска заголовочных файлов
|
||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
|
||
|
||
# Зависимость от библиотеки из внешнего проекта проекта
|
||
add_dependencies(${TRGT} myxlib)
|
||
|
||
# Добавление каталога, в который устанавливаются заголовочные файлы
|
||
# от внешнего проекта, к списку путей для поиска
|
||
target_include_directories(${TRGT} PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
|
||
|
||
# Компоновка с библиотеками из внешнего проекта
|
||
target_link_libraries(${TRGT} myx-qt myx-filesystem)
|
||
|
||
# Имя выходного файла для цели
|
||
set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME ${TRGT})
|
||
|
||
# Правила для установки
|
||
install(TARGETS ${TRGT} COMPONENT MAIN RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|