49 lines
1.9 KiB
CMake
49 lines
1.9 KiB
CMake
# Минимальная версия CMake, требуемая для сборки проекта
|
||
cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
|
||
|
||
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
|
||
cmake_policy(VERSION 3.6..3.7)
|
||
|
||
# Название и версия проекта и используемые языки программирования
|
||
project(msg VERSION 1.1.1 LANGUAGES CXX)
|
||
|
||
###
|
||
# Подключение дополнительных функций для CMake
|
||
# По умолчанию предполагается использование версии MyxCMake,
|
||
# файлы которой находятся в каталоге `cmake/myx` текущего проекта.
|
||
# Если определена переменная `MYX_CMAKE_USE_SYSTEM`, то выполняется
|
||
# поиск версии в каталогах перечисленных в переменной `CMAKE_MODULES_DIR`.
|
||
###
|
||
if(MYX_CMAKE_USE_SYSTEM)
|
||
find_package(MyxCMake 1.99.11 REQUIRED)
|
||
else()
|
||
include(${PROJECT_SOURCE_DIR}/cmake/myx/MyxCMakeConfig.cmake)
|
||
endif()
|
||
|
||
# Если проект верхнего уровня, подключаем зависимости
|
||
# с помощью модуля FetchContent
|
||
if(PROJECT_IS_TOP_LEVEL)
|
||
FetchContent_Add(pow
|
||
GIT_REPOSITORY https://git.246060.ru/cmake/pow
|
||
GIT_PATH cmake/pow
|
||
GIT_REMOTE origin
|
||
)
|
||
endif()
|
||
|
||
# Цель для компиляции объектных файлов разделяемой библиотеки
|
||
myx_add_library(${PROJECT_NAME} OBJECT)
|
||
|
||
# Настройка свойств цели
|
||
myx_target_setup(${PROJECT_NAME}
|
||
SOURCES
|
||
${PROJECT_SOURCE_DIR}/include/msg/message.hpp
|
||
${PROJECT_SOURCE_DIR}/src/msg/message.cpp
|
||
PCH
|
||
src/msg/pch.hpp
|
||
LINK_LIBRARIES
|
||
pow
|
||
)
|
||
|
||
# Команды для установки библиотеки
|
||
myx_install_library(${PROJECT_NAME})
|