Skip to content

Commit b695499

Browse files
authored
Only download header-only dependencies (#958)
* Set valijson version * Consistent formatting * Only download header-only libraries
1 parent 64654c5 commit b695499

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

ManiVault/CMakeLists.txt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -153,29 +153,25 @@ CPMAddPackage(
153153
)
154154

155155
# Serialization: JSON
156-
set(nlohmann_json_VERSION v3.12.0)
157156
CPMAddPackage(
158157
NAME nlohmann_json
159158
GITHUB_REPOSITORY nlohmann/json
160-
GIT_TAG ${nlohmann_json_VERSION} # latest release as of 17/06/25
159+
GIT_TAG v3.12.0
160+
DOWNLOAD_ONLY YES
161161
OPTIONS
162162
"JSON_BuildTests=OFF" # skip upstream tests
163163
"JSON_MultipleHeaders=ON" # shave compile time (optional)
164164
)
165165

166166
# Serialization: Add valijson as a header-only library
167167
CPMAddPackage(
168-
NAME valijson
168+
NAME valijson
169169
GITHUB_REPOSITORY tristanpenman/valijson
170-
GIT_TAG master
170+
GIT_TAG v1.0.6
171+
DOWNLOAD_ONLY YES
171172
OPTIONS "VALIJSON_BUILD_TESTS OFF" "VALIJSON_USE_EXCEPTIONS ON"
172173
)
173174

174-
# Make an interface target for valijson
175-
add_library(valijson_interface INTERFACE)
176-
target_include_directories(valijson_interface INTERFACE ${valijson_SOURCE_DIR}/include)
177-
target_link_libraries(valijson_interface INTERFACE nlohmann_json::nlohmann_json)
178-
179175
# Layout: Qt Advanced docking system
180176
CPMAddPackage(
181177
NAME advanced_docking
@@ -293,9 +289,13 @@ target_sources(${MV_PUBLIC_LIB}
293289

294290
target_include_directories(${MV_PUBLIC_LIB} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src")
295291

292+
target_include_directories(${MV_PUBLIC_LIB} PRIVATE "${nlohmann_json_SOURCE_DIR}/include")
293+
target_include_directories(${MV_PUBLIC_LIB} PRIVATE "${valijson_SOURCE_DIR}/include")
294+
296295
target_compile_features(${MV_PUBLIC_LIB} PRIVATE cxx_std_20)
297296

298297
target_compile_definitions(${MV_PUBLIC_LIB} PRIVATE MV_SHARED_EXPORT)
298+
target_compile_definitions(${MV_PUBLIC_LIB} PRIVATE VALIJSON_USE_EXCEPTIONS=1)
299299

300300
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::Core)
301301
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::Gui)
@@ -304,8 +304,6 @@ target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::OpenGL)
304304
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::OpenGLWidgets)
305305
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::WebEngineWidgets)
306306
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::Concurrent)
307-
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE nlohmann_json::nlohmann_json)
308-
target_link_libraries(${MV_PUBLIC_LIB} PRIVATE valijson_interface)
309307

310308
# Use AVX if enabled and available
311309
mv_check_and_set_AVX(${MV_PUBLIC_LIB} ${MV_USE_AVX})
@@ -345,8 +343,13 @@ target_include_directories(${MV_EXE} PRIVATE
345343
${CMAKE_CURRENT_SOURCE_DIR} # for resources in /res
346344
)
347345

346+
target_include_directories(${MV_EXE} PRIVATE "${nlohmann_json_SOURCE_DIR}/include")
347+
target_include_directories(${MV_EXE} PRIVATE "${valijson_SOURCE_DIR}/include")
348+
348349
target_compile_features(${MV_EXE} PRIVATE cxx_std_20)
349350

351+
target_compile_definitions(${MV_EXE} PRIVATE VALIJSON_USE_EXCEPTIONS=1)
352+
350353
target_link_libraries(${MV_EXE} PRIVATE Qt6::Core)
351354
target_link_libraries(${MV_EXE} PRIVATE Qt6::Gui)
352355
target_link_libraries(${MV_EXE} PRIVATE Qt6::Widgets)
@@ -355,8 +358,6 @@ target_link_libraries(${MV_EXE} PRIVATE Qt6::OpenGL)
355358
target_link_libraries(${MV_EXE} PRIVATE Qt6::OpenGLWidgets)
356359
target_link_libraries(${MV_EXE} PRIVATE qtadvanceddocking-qt6)
357360
target_link_libraries(${MV_EXE} PRIVATE QuaZip)
358-
target_link_libraries(${MV_EXE} PRIVATE nlohmann_json::nlohmann_json)
359-
target_link_libraries(${MV_EXE} PRIVATE valijson_interface)
360361

361362
if(${MV_USE_ERROR_LOGGING} AND NOT APPLE)
362363
target_link_libraries(${MV_EXE} PRIVATE sentry)

0 commit comments

Comments
 (0)