49 lines
1.8 KiB
CMake
49 lines
1.8 KiB
CMake
# Минимальная версия CMake, требуемая для сборки проекта
|
||
cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
|
||
|
||
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
|
||
cmake_policy(VERSION 3.6..3.7)
|
||
|
||
# Название и версия проекта и используемые языки программирования
|
||
project(myx-example-app-ext VERSION 0.3.0 LANGUAGES C CXX)
|
||
|
||
# Рекомендуемый способ подключения MyxCMake
|
||
include(cmake/myx_setup.cmake)
|
||
|
||
if(PROJECT_IS_TOP_LEVEL)
|
||
FetchContent_Add(myx-example-interface-library
|
||
GIT_REPOSITORY gitlab.2:myx/examples/myx-example-interface-library
|
||
GIT_PATH myx/examples/myx-example-interface-library
|
||
GIT_REMOTE origin
|
||
)
|
||
|
||
FetchContent_Add(myx-example-object-library
|
||
GIT_REPOSITORY gitlab.2:myx/examples/myx-example-object-library
|
||
GIT_PATH myx/examples/myx-example-object-library
|
||
GIT_REMOTE origin
|
||
)
|
||
else()
|
||
include(myx_add_subdirectories.cmake)
|
||
endif()
|
||
|
||
# Цель для компиляции
|
||
add_executable(${PROJECT_NAME})
|
||
|
||
# Настройка свойств цели
|
||
myx_target_setup(${PROJECT_NAME}
|
||
CPP
|
||
${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/main.cpp
|
||
LINK_LIBRARIES
|
||
myx-example-interface-library
|
||
myx-example-object-library
|
||
)
|
||
|
||
# Форматирование кода с помощью uncrustify
|
||
myx_uncrustify(${PROJECT_NAME})
|
||
|
||
# Автоматически генерируемый файл с информацией о репозитории
|
||
myx_generate_git_info_header(${PROJECT_NAME} "git_info_p.hpp")
|
||
|
||
# Автоматически генерируемый приватный заголовочный файл
|
||
myx_generate_private_config_header(${PROJECT_NAME} "config_p.hpp")
|