@@ -153,29 +153,25 @@ CPMAddPackage(
153153)
154154
155155# Serialization: JSON
156- set (nlohmann_json_VERSION v3.12.0)
157156CPMAddPackage(
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
167167CPMAddPackage(
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
180176CPMAddPackage(
181177 NAME advanced_docking
@@ -293,9 +289,13 @@ target_sources(${MV_PUBLIC_LIB}
293289
294290target_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+
296295target_compile_features (${MV_PUBLIC_LIB} PRIVATE cxx_std_20)
297296
298297target_compile_definitions (${MV_PUBLIC_LIB} PRIVATE MV_SHARED_EXPORT)
298+ target_compile_definitions (${MV_PUBLIC_LIB} PRIVATE VALIJSON_USE_EXCEPTIONS=1)
299299
300300target_link_libraries (${MV_PUBLIC_LIB} PRIVATE Qt6::Core)
301301target_link_libraries (${MV_PUBLIC_LIB} PRIVATE Qt6::Gui)
@@ -304,8 +304,6 @@ target_link_libraries(${MV_PUBLIC_LIB} PRIVATE Qt6::OpenGL)
304304target_link_libraries (${MV_PUBLIC_LIB} PRIVATE Qt6::OpenGLWidgets)
305305target_link_libraries (${MV_PUBLIC_LIB} PRIVATE Qt6::WebEngineWidgets)
306306target_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
311309mv_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+
348349target_compile_features (${MV_EXE} PRIVATE cxx_std_20)
349350
351+ target_compile_definitions (${MV_EXE} PRIVATE VALIJSON_USE_EXCEPTIONS=1)
352+
350353target_link_libraries (${MV_EXE} PRIVATE Qt6::Core)
351354target_link_libraries (${MV_EXE} PRIVATE Qt6::Gui)
352355target_link_libraries (${MV_EXE} PRIVATE Qt6::Widgets)
@@ -355,8 +358,6 @@ target_link_libraries(${MV_EXE} PRIVATE Qt6::OpenGL)
355358target_link_libraries (${MV_EXE} PRIVATE Qt6::OpenGLWidgets)
356359target_link_libraries (${MV_EXE} PRIVATE qtadvanceddocking-qt6)
357360target_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
361362if (${MV_USE_ERROR_LOGGING} AND NOT APPLE )
362363 target_link_libraries (${MV_EXE} PRIVATE sentry)
0 commit comments