forked from viniciusferrao/cloysterhpc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDependencies.cmake
More file actions
181 lines (162 loc) · 4.98 KB
/
Dependencies.cmake
File metadata and controls
181 lines (162 loc) · 4.98 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
set(CPM_USE_LOCAL_PACKAGES OFF)
if(DEFINED ENV{CPM_SOURCE_CACHE})
set(CPM_SOURCE_CACHE "$ENV{CPM_SOURCE_CACHE}")
elseif(DEFINED ENV{HOME})
set(CPM_SOURCE_CACHE "$ENV{HOME}/.cache/CPM")
endif()
include(cmake/CPM.cmake)
# Done as a function so that updates to variables like
# CMAKE_CXX_FLAGS don't propagate out to other
# targets
function(opencattus_setup_dependencies)
# For each dependency, see if it's
# already been provided to us by a parent project
if(NOT (TARGET Boost::headers OR TARGET Boost::system OR TARGET Boost::thread))
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME Boost)
else()
CPMAddPackage(
NAME Boost
VERSION 1.82.0
GITHUB_REPOSITORY "boostorg/boost"
GIT_TAG "boost-1.82.0"
)
endif()
endif()
if(NOT TARGET fmtlib::fmtlib)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME fmt)
else()
CPMAddPackage("gh:fmtlib/fmt#9.1.0")
endif()
endif()
if(NOT TARGET spdlog::spdlog)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME spdlog
OPTIONS
"SPDLOG_FMT_EXTERNAL ON")
else()
CPMAddPackage(
NAME
spdlog
VERSION
1.11.0
GITHUB_REPOSITORY
"gabime/spdlog"
OPTIONS
"SPDLOG_FMT_EXTERNAL ON")
endif()
endif()
if(NOT TARGET magic_enum::magic_enum)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME magic_enum)
else()
CPMAddPackage(
NAME magic_enum
VERSION 0.9.3
GITHUB_REPOSITORY Neargye/magic_enum
#OPTIONS "MAGIC_ENUM_OPT_INSTALL YES"
)
endif()
endif()
if(NOT TARGET gsl-lite::gsl-lite)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME gsl-lite)
else()
CPMAddPackage("gh:gsl-lite/gsl-lite@0.41.0")
endif()
endif()
if(NOT TARGET CLI11::CLI11)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME CLI11)
else()
CPMAddPackage("gh:CLIUtils/CLI11@2.3.2")
endif()
endif()
if(NOT TARGET doctest::doctest)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME doctest)
else()
CPMAddPackage("gh:doctest/doctest@2.4.11")
endif()
endif()
if(NOT TARGET SDBusCpp::sdbus-c++)
if (opencattus_ENABLE_CONAN)
CPMFindPackage(NAME sdbus-c++)
else()
CPMAddPackage(
VERSION 2.0.0
GITHUB_REPOSITORY
"Kistler-Group/sdbus-cpp")
endif()
endif()
# Standalone packages
include(FindPackageHandleStandardArgs)
# Include module path for packages that we need to find or build
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(cmake/Findnewt.cmake)
if(NOT TARGET newt)
CPMFindPackage(NAME newt)
endif()
if(NOT TARGET glibmm)
# Using pkg_check_modules to link against the host glibmm
# instead of using conan
set(GLIBMM_PKG_NAMES glibmm-2.68 glibmm-2.4)
unset(GLIBMM_FOUND)
unset(GLIBMM_LIBRARIES)
unset(GLIBMM_INCLUDE_DIRS)
unset(GLIBMM_CFLAGS)
unset(GLIBMM_LDFLAGS)
unset(GLIBMM_STATIC_LIBRARIES)
unset(GLIBMM_STATIC_INCLUDE_DIRS)
unset(GLIBMM_STATIC_LDFLAGS)
foreach(GLIBMM_PKG_NAME IN LISTS GLIBMM_PKG_NAMES)
string(MAKE_C_IDENTIFIER "${GLIBMM_PKG_NAME}" GLIBMM_CANDIDATE_PREFIX)
string(TOUPPER "${GLIBMM_CANDIDATE_PREFIX}" GLIBMM_CANDIDATE_PREFIX)
pkg_check_modules(${GLIBMM_CANDIDATE_PREFIX} QUIET ${GLIBMM_PKG_NAME})
if(${GLIBMM_CANDIDATE_PREFIX}_FOUND)
set(GLIBMM_FOUND TRUE)
set(GLIBMM_LIBRARIES
${${GLIBMM_CANDIDATE_PREFIX}_LIBRARIES})
set(GLIBMM_INCLUDE_DIRS
${${GLIBMM_CANDIDATE_PREFIX}_INCLUDE_DIRS})
set(GLIBMM_CFLAGS
${${GLIBMM_CANDIDATE_PREFIX}_CFLAGS})
set(GLIBMM_LDFLAGS
${${GLIBMM_CANDIDATE_PREFIX}_LDFLAGS})
set(GLIBMM_STATIC_LIBRARIES
${${GLIBMM_CANDIDATE_PREFIX}_STATIC_LIBRARIES})
set(GLIBMM_STATIC_INCLUDE_DIRS
${${GLIBMM_CANDIDATE_PREFIX}_STATIC_INCLUDE_DIRS})
set(GLIBMM_STATIC_LDFLAGS
${${GLIBMM_CANDIDATE_PREFIX}_STATIC_LDFLAGS})
break()
endif()
endforeach()
if(NOT GLIBMM_FOUND)
message(FATAL_ERROR "Could not find a supported glibmm pkg-config package")
endif()
message(STATUS "GLIBMM_LIBRARIES=${GLIBMM_LIBRARIES}")
message(STATUS "GLIBMM_INCLUDE_DIRS=${GLIBMM_INCLUDE_DIRS}")
message(STATUS "GLIBMM_PKG_NAME=${GLIBMM_PKG_NAME}")
find_package_handle_standard_args(glibmm
DEFAULT_MSG
GLIBMM_LIBRARIES
GLIBMM_INCLUDE_DIRS)
mark_as_advanced(GLIBMM_INCLUDE_DIRS GLIBMM_LIBRARIES)
foreach(GLIBMM_VAR IN ITEMS
GLIBMM_FOUND
GLIBMM_PKG_NAME
GLIBMM_LIBRARIES
GLIBMM_INCLUDE_DIRS
GLIBMM_CFLAGS
GLIBMM_LDFLAGS
GLIBMM_STATIC_LIBRARIES
GLIBMM_STATIC_INCLUDE_DIRS
GLIBMM_STATIC_LDFLAGS)
set(${GLIBMM_VAR} "${${GLIBMM_VAR}}" PARENT_SCOPE)
endforeach()
endif()
# Set the variable ${STDC++FS} to the correct library
include(cmake/Addstdcppfs.cmake)
endfunction()