File: CMakeLists.txt

package info (click to toggle)
alkimia 7.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 304 kB
  • sloc: cpp: 1,486; makefile: 4
file content (62 lines) | stat: -rw-r--r-- 1,707 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# The CMake version we require (must be first)
cmake_minimum_required(VERSION 3.0.2)

project(alkimia VERSION 7.0.2)

find_package(ECM 0.0.11 REQUIRED NO_MODULE)

set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)

include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(FeatureSummary)

# check for PkgConfig, Qt and MPIR/GMP
find_package(PkgConfig)
if(BUILD_QT4)
    find_package(Qt4 REQUIRED COMPONENTS QtCore QtDBus QtTest)
    set(QT_USE_LIBSPREFIX Qt4::Qt)
    set(ALKIMIA_LIB_SUFFIX "")
    set(ALKIMIA_INCLUDE_SUFFIX "Qt4")
    set(ALKIMIA_PATH_SUFFIX)
    set(PC_TARGET_QTPREFIX Qt)
    set(PC_TARGET_SUFFIX)
else()
    find_package(Qt5 REQUIRED COMPONENTS Core DBus Test)
    set(QT_USE_LIBSPREFIX Qt5::)
    set(ALKIMIA_LIB_SUFFIX "5")
    set(ALKIMIA_INCLUDE_SUFFIX "Qt5")
    set(ALKIMIA_PATH_SUFFIX 5)
    set(PC_TARGET_QTPREFIX Qt5)
    set(PC_TARGET_SUFFIX 5)
endif()

# figure out which multi-precision library to use
# MPIR is preferred over GMP
find_package(MPIR)
if(MPIR_FOUND)
  set(MP_INCLUDE_DIR ${MPIR_INCLUDE_DIR})
  set(MP_LIBRARIES ${MPIR_LIBRARIES})
  set(MP_HEADER mpirxx.h)
  set(MP_CMAKE_MODULE "MPIR")
  set(PC_LIB mpir)
else()
  find_package(GMP REQUIRED)
  set(MP_INCLUDE_DIR ${GMP_INCLUDE_DIR})
  set(MP_LIBRARIES ${GMP_LIBRARIES})
  set(MP_HEADER gmpxx.h)
  set(MP_CMAKE_MODULE "GMP")
  set(PC_LIB gmp)
endif()

# check for Doxygen (for API documentation)
find_package(Doxygen)

feature_summary(WHAT ALL)

add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories(${MP_INCLUDE_DIR})

add_subdirectory(src)
add_subdirectory(autotests)