55 lines
1.8 KiB
CMake
55 lines
1.8 KiB
CMake
# Минимальная версия 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}/3rdparty/libcmext
|
||
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
|
||
)
|
||
|
||
# Библиотека
|
||
add_subdirectory(src/libcmex)
|
||
|
||
# Приложение
|
||
add_subdirectory(src/cmex)
|
||
|