# Минимальная версия Cmake cmake_minimum_required(VERSION 3.3) cmake_policy(VERSION 3.0.2..3.7) # Название проекта project(cmex VERSION 0.2.2 LANGUAGES C CXX) # В каталоге cmake/lib находятся файлы с библиотечными функциями if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib) list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/cmlib) else() message(FATAL_ERROR "CMake library directory not exists") endif() list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find) include(CMLibCommon) # Поиск библиотек с помощью pkgconfig find_package(PkgConfig) pkg_check_modules(GSL REQUIRED gsl) pkg_check_modules(FFTW3 REQUIRED fftw3) # Поиск библиотек и приложений с помощью функции find_package find_package(LibXml2) find_package(CURL) # Поиск библиотеки с помощью функции find_library find_library(MATHGL mgl PATHS /usr/lib /usr/lib/x86_64-linux-gnu) find_library(MATHGLQT5 mgl-qt5 PATHS /usr/lib /usr/lib/x86_64-linux-gnu) # Qt5 find_package(Qt5 COMPONENTS Core Network Gui Widgets DBus Concurrent Sql REQUIRED) # Автоматически генерируемый заголовочный файл cmlib_config_hpp_generate() # Подключение внешних проектов include(ExternalProject) ExternalProject_Add(cmext EXCLUDE_FROM_ALL TRUE SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libcmext INSTALL_DIR ${CMAKE_BINARY_DIR} DOWNLOAD_COMMAND "" BUILD_BYPRODUCTS /lib/libcmext.a CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_BUILD_TYPE=Release ) # Библиотека add_subdirectory(src/libcmex) # Приложение add_subdirectory(src/cmex) add_breathe_doc( SOURCE_DIR ${CMAKE_SOURCE_DIR}/docs/breathe BUILD_DIR ${CMAKE_BINARY_DIR} CACHE_DIR ${CMAKE_BINARY_DIR}/_doctrees HTML_DIR ${CMAKE_BINARY_DIR}/html DOXY_FILE ${CMAKE_SOURCE_DIR}/docs/breathe/Doxyfile.in CONF_FILE ${CMAKE_SOURCE_DIR}/docs/breathe/conf.py.in TARGET_NAME breathe-docs COMMENT "Breathe HTML documentation" )