myx-example-app-ext/CMakeLists.txt

59 lines
2.4 KiB
CMake
Raw Normal View History

2022-10-04 11:12:34 +00:00
# Минимальная версия CMake, требуемая для сборки проекта
cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
cmake_policy(VERSION 3.6..3.7)
# Название и версия проекта и используемые языки программирования
2022-10-20 10:11:58 +00:00
project(myx-example-app-ext VERSION 0.4.0 LANGUAGES C CXX)
2022-10-04 11:12:34 +00:00
# Рекомендуемый способ подключения MyxCMake
include(cmake/myx_setup.cmake)
if(PROJECT_IS_TOP_LEVEL)
2023-02-17 11:36:21 +00:00
myx_add_external_target(myx-example-interface-library
GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-interface-library)
myx_add_external_target(myx-example-object-library
GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-object-library)
2022-10-04 11:12:34 +00:00
endif()
2023-02-17 11:36:21 +00:00
#add_subdirectory(${PROJECT_SOURCE_DIR}/modules/myx-example-interface-library ${CMAKE_BINARY_DIR}/myx-example-interface-library EXCLUDE_FROM_ALL)
#add_subdirectory(${PROJECT_SOURCE_DIR}/modules/myx-example-object-library ${CMAKE_BINARY_DIR}/myx-example-object-library EXCLUDE_FROM_ALL)
#if(PROJECT_IS_TOP_LEVEL)
# FetchContent_Add(myx-example-interface-library
# GIT_REPOSITORY git@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 git@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()
2022-10-06 12:22:45 +00:00
# Цель для создания исполняемого файла
myx_add_executable(${PROJECT_NAME})
2022-10-04 11:12:34 +00:00
# Настройка свойств цели
myx_target_setup(${PROJECT_NAME}
CPP
${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/main.cpp
LINK_LIBRARIES
myx-example-interface-library
myx-example-object-library
)
# Автоматически генерируемый файл с информацией о репозитории
myx_generate_git_info_header(${PROJECT_NAME} "git_info_p.hpp")
# Автоматически генерируемый приватный заголовочный файл
myx_generate_private_config_header(${PROJECT_NAME} "config_p.hpp")
2022-10-06 12:22:45 +00:00
# Форматирование исходных текстов с помощью uncrustify
myx_uncrustify(${PROJECT_NAME})