# Название основной цели и имя библиотеки в текущем каталоге set(TRGT cmlib-example) # Список файлов исходных текстов 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 $) # Компоновка с библиотеками из внешнего проекта target_link_libraries(${TRGT} myx-qt myx-filesystem myx-base) # Имя целевого каталога и выходного файла для цели set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME ${TRGT} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} ) # Правила для установки install(TARGETS ${TRGT} COMPONENT MAIN RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})