myx-example-features/CMakeLists.txt

58 lines
2.0 KiB
CMake
Raw Normal View History

2022-10-06 12:22:57 +00:00
# Минимальная версия CMake, требуемая для сборки проекта
cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
2021-12-21 11:09:23 +00:00
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
2022-10-06 12:22:57 +00:00
cmake_policy(VERSION 3.6..3.7)
2021-12-21 11:09:23 +00:00
# Название и версия проекта и используемые языки программирования
2022-10-06 12:22:57 +00:00
project(myx-example-features VERSION 0.3.0 LANGUAGES CXX)
2021-12-21 11:09:23 +00:00
2022-10-09 18:19:53 +00:00
set(${PROJECT_NAME}_VENDOR unknown)
set(${PROJECT_NAME}_CONTACT unknown)
2024-04-08 19:04:21 +00:00
set(CMAKE_CXX_STANDARD 11)
2022-10-06 12:22:57 +00:00
# Рекомендуемый способ подключения MyxCMake
include(cmake/myx_setup.cmake)
2021-12-21 11:09:23 +00:00
2023-08-02 09:03:46 +00:00
# Поиск компонентов Qt
myx_find_qt(COMPONENTS Core PRIVATE Core REQUIRED)
2022-10-06 12:22:57 +00:00
# Цель для создания исполняемого файла
2023-08-02 09:55:58 +00:00
myx_add_executable(${PROJECT_NAME})
2021-12-21 11:09:23 +00:00
2022-10-06 12:22:57 +00:00
# Настройка свойств цели
myx_target_setup(${PROJECT_NAME}
CPP
${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/main.cpp
)
2021-12-21 12:37:22 +00:00
2022-10-06 12:22:57 +00:00
# Настройка Qt для цели
2023-08-02 09:03:46 +00:00
myx_target_setup_qt(${PROJECT_NAME}
2022-10-06 12:22:57 +00:00
COMPONENTS Core
PRIVATE Core
PRIVATE_MOC
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/processor.hpp
)
2021-12-21 12:37:22 +00:00
2022-10-06 12:22:57 +00:00
# Автоматически генерируемый файл с информацией о репозитории
myx_generate_git_info_header(${PROJECT_NAME} "git_info_p.hpp")
2021-12-21 12:37:22 +00:00
2022-10-06 12:22:57 +00:00
# Автоматически генерируемый приватный заголовочный файл
myx_generate_private_config_header(${PROJECT_NAME} "config_p.hpp")
2021-12-21 11:09:23 +00:00
2022-10-06 12:22:57 +00:00
# Форматирование исходных текстов с помощью uncrustify
myx_uncrustify(${PROJECT_NAME})
2022-10-06 12:32:25 +00:00
# Формирование документации
myx_doc_doxygen(${PROJECT_NAME} HTML YES)
2022-10-09 03:05:59 +00:00
# Создание пакетов
myx_create_packages(${PROJECT_NAME})
2022-10-06 12:32:25 +00:00
# Подключение функций для сопровождения проекта
if(MyxxCMake_DIR)
myxx()
endif()