46 lines
1.5 KiB
CMake
46 lines
1.5 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
|
|||
|
###
|
|||
|
find_package(MyxCMake 1.99.9 PATHS ${PROJECT_SOURCE_DIR}/cmake/myx NO_DEFAULT_PATH QUIET REQUIRED)
|
|||
|
|
|||
|
# Если проект верхнего уровня, подключаем зависимости
|
|||
|
# с помощью модуля FetchContent
|
|||
|
if(PROJECT_IS_TOP_LEVEL)
|
|||
|
include(FetchContent)
|
|||
|
FetchContent_Declare(pow
|
|||
|
GIT_REPOSITORY https://git.246060.ru/cmake/pow
|
|||
|
)
|
|||
|
if(NOT pow_POPULATED)
|
|||
|
FetchContent_Populate(pow)
|
|||
|
add_subdirectory(${pow_SOURCE_DIR} ${pow_BINARY_DIR})
|
|||
|
endif()
|
|||
|
endif()
|
|||
|
|
|||
|
# Цель для компиляции объектных файлов разделяемой библиотеки
|
|||
|
myx_add_library(${PROJECT_NAME}
|
|||
|
TYPE 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
|
|||
|
)
|
|||
|
|
|||
|
if(PROJECT_IS_TOP_LEVEL)
|
|||
|
myx_install_library(${PROJECT_NAME})
|
|||
|
endif()
|