cmlib-example-app-ext/CMakeLists.txt

60 lines
2.2 KiB
CMake
Raw Permalink Normal View History

# Минимальная версия CMake
2021-07-02 07:41:56 +00:00
cmake_minimum_required(VERSION 3.6)
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
cmake_policy(VERSION 3.0.2..3.7)
# Название и версия проекта и используемые языки программирования
2020-04-11 11:42:41 +00:00
project(cmlib-example-app VERSION 0.2.0 LANGUAGES C CXX)
2021-07-02 07:41:56 +00:00
# Обязательные переменные
set(CMLIB_ORGANIZATION_NAME "ECS5" CACHE STRING "")
set(CMLIB_AUTHOR_NAME "Андрей Астафьев" CACHE STRING "")
set(CMLIB_AUTHOR_EMAIL "dev@246060.ru" CACHE STRING "")
set(CMLIB_DESCRIPTION "Пример проекта: приложение и подключение библиотеки" CACHE STRING "")
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
2021-07-02 07:41:56 +00:00
if(NOT DEFINED CMLIB_MAIN_DIR)
set(CMLIB_MAIN_DIR "${CMAKE_SOURCE_DIR}/cmake/cmlib")
endif()
if(IS_DIRECTORY "${CMLIB_MAIN_DIR}" AND EXISTS "${CMLIB_MAIN_DIR}/CMLibCommon.cmake")
list(INSERT CMAKE_MODULE_PATH 0 "${CMLIB_MAIN_DIR}")
else()
2021-07-02 07:41:56 +00:00
message(FATAL_ERROR "CMLib main directory ${CMLIB_MAIN_DIR} does not exists")
endif()
include(CMLibCommon)
2020-04-11 11:42:41 +00:00
# Boost
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED OFF)
set(Boost_USE_STATIC_RUNTIME ON)
find_package(Boost 1.55.0 REQUIRED)
2020-04-11 11:42:41 +00:00
# Автоматически генерируемый заголовочный файл
2021-07-02 07:41:56 +00:00
cmlib_generate_private_config_hpp()
2020-04-11 11:42:41 +00:00
# Подключение внешних проектов
include(ExternalProject)
ExternalProject_Add(ext-lib
EXCLUDE_FROM_ALL TRUE
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/cmlib-example-library
INSTALL_DIR ${CMAKE_BINARY_DIR}
DOWNLOAD_COMMAND ""
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_BUILD_TYPE=Release
)
2020-04-11 11:42:41 +00:00
# Приложение
add_subdirectory(src/cmlib-example)
# Документация
2021-07-02 07:41:56 +00:00
add_breathe_target(doc-breathe)
add_doxygen_target(doc-doxygen LATEX YES HTML YES)
2020-04-11 11:42:41 +00:00
# Создание вспомогательных символических ссылок
add_dependencies(cmlib-example create_auxilary_symlinks)