-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeps.cmake
147 lines (130 loc) · 4.9 KB
/
deps.cmake
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
include(FetchContent)
if (MAPGET_WITH_SERVICE OR MAPGET_WITH_HTTPLIB OR MAPGET_ENABLE_TESTING)
set(WANTS_ROCKSDB YES)
else()
set(WANTS_ROCKSDB NO)
endif()
if (MAPGET_CONAN)
find_package(spdlog CONFIG REQUIRED)
find_package(Bitsery CONFIG REQUIRED)
find_package(simfil CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)
if (MAPGET_WITH_HTTPLIB)
find_package(httplib CONFIG REQUIRED)
find_package(yaml-cpp CONFIG REQUIRED)
find_package(CLI11 CONFIG REQUIRED)
find_package(nlohmann_json_schema_validator CONFIG REQUIRED)
find_package(picosha2 CONFIG REQUIRED)
endif()
if (MAPGET_WITH_WHEEL)
find_package(pybind11 CONFIG REQUIRED)
endif()
if (WANTS_ROCKSDB)
find_package(RocksDB CONFIG REQUIRED)
endif()
else()
FetchContent_Declare(glm
GIT_REPOSITORY "https://github.com/g-truc/glm.git"
GIT_TAG "1.0.1"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(glm)
FetchContent_Declare(fmt
GIT_REPOSITORY "https://github.com/fmtlib/fmt.git"
GIT_TAG "11.0.2"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(fmt)
set (SPDLOG_FMT_EXTERNAL ON)
FetchContent_Declare(spdlog
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
GIT_TAG "v1.x"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(spdlog)
FetchContent_Declare(bitsery
GIT_REPOSITORY "https://github.com/fraillt/bitsery.git"
GIT_TAG "master"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(bitsery)
FetchContent_Declare(cpp-httplib
GIT_REPOSITORY "https://github.com/yhirose/cpp-httplib.git"
GIT_TAG "v0.14.3"
GIT_SHALLOW ON)
FetchContent_Declare(yaml-cpp
GIT_REPOSITORY "https://github.com/jbeder/yaml-cpp.git"
GIT_TAG "master"
GIT_SHALLOW ON)
FetchContent_Declare(cli11
GIT_REPOSITORY "https://github.com/CLIUtils/CLI11"
GIT_TAG v2.3.2
GIT_SHALLOW ON)
FetchContent_Declare(nlohmann_json_schema_validator
GIT_REPOSITORY "https://github.com/pboettch/json-schema-validator"
GIT_TAG "2.3.0"
GIT_SHALLOW ON)
FetchContent_Declare(picosha2
GIT_REPOSITORY "https://github.com/okdshin/PicoSHA2"
GIT_TAG "27fcf6979298949e8a462e16d09a0351c18fcaf2"
GIT_SHALLOW ON)
if (MAPGET_WITH_WHEEL AND NOT TARGET pybind11)
FetchContent_Declare(pybind11
GIT_REPOSITORY "https://github.com/pybind/pybind11.git"
GIT_TAG v2.11.1
GIT_SHALLOW ON)
FetchContent_MakeAvailable(pybind11)
endif()
if (WANTS_ROCKSDB AND NOT TARGET rocksdb)
block()
set(WITH_GFLAGS NO CACHE BOOL "rocksdb without gflags")
set(WITH_TESTS NO CACHE BOOL "rocksdb without tests")
set(WITH_BENCHMARK_TOOLS NO CACHE BOOL "rocksdb without benchmarking")
set(BENCHMARK_ENABLE_GTEST_TESTS NO CACHE BOOL "rocksdb without gtest")
set(WITH_TOOLS NO CACHE BOOL "rocksdb without tools")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Due to a problem compiling rocksdb on GCC 14.1.1 we need to disable
# deprecated declaration errors
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
endif()
set(FAIL_ON_WARNINGS YES CACHE BOOL "rocksdb warnings are ok")
FetchContent_Declare(RocksDB
GIT_REPOSITORY "https://github.com/facebook/rocksdb.git"
GIT_TAG "v9.1.0"
GIT_SHALLOW OFF)
FetchContent_MakeAvailable(RocksDB)
add_library(RocksDB::rocksdb ALIAS rocksdb)
endblock()
endif()
if (NOT TARGET simfil)
set(SIMFIL_WITH_MODEL_JSON YES CACHE BOOL "Simfil with JSON support")
set(SIMFIL_SHARED NO CACHE BOOL "Simfil as static library")
FetchContent_Declare(simfil
GIT_REPOSITORY "https://github.com/Klebert-Engineering/simfil.git"
GIT_TAG "v0.3.4"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(simfil)
endif()
if (MAPGET_WITH_WHEEL OR MAPGET_WITH_HTTPLIB OR MAPGET_ENABLE_TESTING)
FetchContent_MakeAvailable(cpp-httplib yaml-cpp cli11 nlohmann_json_schema_validator picosha2)
add_library(picosha2::picosha2 ALIAS picosha2)
endif()
FetchContent_GetProperties(cpp-httplib)
if (cpp_httplib_POPULATED)
find_package(OpenSSL REQUIRED)
target_compile_definitions(cpp-httplib
INTERFACE
CPPHTTPLIB_OPENSSL_SUPPORT)
target_link_libraries(cpp-httplib INTERFACE OpenSSL::SSL)
endif()
endif()
if (MAPGET_WITH_WHEEL)
FetchContent_Declare(python-cmake-wheel
GIT_REPOSITORY "https://github.com/klebert-engineering/python-cmake-wheel.git"
GIT_TAG "v0.9.0"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(python-cmake-wheel)
endif()
set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
FetchContent_Declare(tiny-process-library
GIT_REPOSITORY "https://gitlab.com/eidheim/tiny-process-library"
GIT_TAG v2.0.4
GIT_SHALLOW ON)
FetchContent_MakeAvailable(tiny-process-library)