msg/CMakeLists.txt

49 lines
2.0 KiB
CMake
Raw Normal View History

2022-09-30 07:28:33 +00:00
# Минимальная версия 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
2022-10-01 14:35:11 +00:00
# По умолчанию предполагается использование версии MyxCMake,
# файлы которой находятся в каталоге `cmake/myx` текущего проекта.
# Если определена переменная `MYX_CMAKE_USE_SYSTEM`, то выполняется
# поиск версии в каталогах перечисленных в переменной `CMAKE_MODULES_DIR`.
2022-09-30 07:28:33 +00:00
###
2022-10-01 14:35:11 +00:00
if(MYX_CMAKE_USE_SYSTEM)
find_package(MyxCMake 1.99.9 PATHS "${PROJECT_SOURCE_DIR}/cmake/myx" NO_DEFAULT_PATH QUIET REQUIRED)
else()
include(${PROJECT_SOURCE_DIR}/cmake/myx/MyxCMakeConfig.cmake)
endif()
2022-09-30 07:28:33 +00:00
# Если проект верхнего уровня, подключаем зависимости
# с помощью модуля FetchContent
if(PROJECT_IS_TOP_LEVEL)
2022-10-01 14:35:11 +00:00
FetchContent_Add(pow
2022-09-30 07:28:33 +00:00
GIT_REPOSITORY https://git.246060.ru/cmake/pow
2022-10-01 14:35:11 +00:00
GIT_PATH cmake/pow
GIT_REMOTE origin
)
2022-09-30 07:28:33 +00:00
endif()
# Цель для компиляции объектных файлов разделяемой библиотеки
2022-10-01 14:35:11 +00:00
myx_add_library(${PROJECT_NAME} OBJECT)
2022-09-30 07:28:33 +00:00
2022-10-01 14:35:11 +00:00
# Настройка свойств цели
2022-09-30 07:28:33 +00:00
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
)
2022-10-01 14:35:11 +00:00
# Команды для установки библиотеки
myx_install_library(${PROJECT_NAME})