-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
112 lines (83 loc) · 2.74 KB
/
CMakeLists.txt
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
cmake_minimum_required (VERSION 3.13)
option(CFP-DOCS "create the sphinx documentation of the project" OFF)
set(PROJECT_HOME "${CMAKE_CURRENT_LIST_DIR}")
set(PROJECT_NAME cfp CACHE STRING "" FORCE)
set(PROJECT_NAMESPACE cfp CACHE STRING "" FORCE)
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_U)
message(STATUS "*** variable PROJECT_NAME set to: ${PROJECT_NAME} ***")
message(STATUS "*** variable PROJECT_NAMESPACE set to: ${PROJECT_NAMESPACE} ***")
message(STATUS "*** variable PROJECT_HOME set to: ${PROJECT_HOME} ***")
message(STATUS "*** retrieving cmake configuration from ${PROJECT_HOME}/cmake ***")
##############################
# include toolsets #
##############################
include("${PROJECT_HOME}/cmake/CMakeLists.txt")
###########################
# defines cmake project #
###########################
set(${PROJECT_NAME_U}_MAJOR_VERSION 0)
set(${PROJECT_NAME_U}_MINOR_VERSION 1)
set(${PROJECT_NAME_U}_BUILD_VERSION 1)
set(${PROJECT_NAME_U}_VERSION
${${PROJECT_NAME_U}_MAJOR_VERSION}.${${PROJECT_NAME_U}_MINOR_VERSION}.${${PROJECT_NAME_U}_BUILD_VERSION})
message(STATUS "project version set to ${${PROJECT_NAME_U}_VERSION}")
PROJECT(
${PROJECT_NAME}
LANGUAGES C CXX
VERSION ${${PROJECT_NAME_U}_VERSION}
DESCRIPTION "the cfp lib"
)
##############################
# import thirdparty packages #
##############################
set(GTEST_VERS "1.8.1" )
set(RCPP_VERS "1.0.4" )
set(PYBIND11_VERS "2.5.0" )
set(EIGEN_VERS "3.3.7" )
set(DOXYGEN_VERS "1.8.18")
set(RCPPUTILS_VERS "0.1.3" )
set(PACKAGES
rcpp
RcppUtils
gtest
pybind11
eigen
doxygen
)
message(STATUS "package list has been set to ${PACKAGES}")
# imported packages
load_packages(
NAME ${PACKAGES}
PROFILE ${CONAN_PROFILE}
SETTINGS ${CONAN_EXTRA_SETTINGS}
OPTIONS ""
UPDATE
)
create_debug_conf(NAME ${PACKAGES}) # TODO: fix
message(DEBUG "CONAN_LIBS set to ${CONAN_LIBS}")
#####################################
# add the sources #
#####################################
include_directories(src)
#####################################
# add the project libraries #
#####################################
add_subdirectory(src/cfp)
#####################################
# add the project applications #
#####################################
add_subdirectory(R/package)
add_subdirectory(python/package)
#####################################
# add the project documentation #
#####################################
# TODO: breathe does not seem to work for now on ...
# compare to project
# https://github.com/PCMSolver/pcmsolver
if (CFP-DOCS)
add_subdirectory(docs)
endif()
#####################################
# add the test suite to the project #
#####################################
add_testsuite(DIRECTORY tests)