From 784a9f5173c4781c4ac235a1698d18884980140a Mon Sep 17 00:00:00 2001 From: BenPinet Date: Mon, 4 May 2026 16:00:50 +0200 Subject: [PATCH 1/3] feat(Json): move json library to opengeode --- .vscode/settings.json | 6 ++++-- cmake/ConfigureJson.cmake | 27 +++++++++++++++++++++++++++ cmake/ConfigureOpenGeode.cmake | 2 ++ cmake/OpenGeode.cmake | 2 ++ cmake/OpenGeodeConfig.cmake.in | 1 + cmake/SuperBuild.cmake | 1 + include/geode/basic/input.hpp | 2 ++ 7 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 cmake/ConfigureJson.cmake diff --git a/.vscode/settings.json b/.vscode/settings.json index 0172d50e4..6dc2f2d86 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,8 @@ "${workspaceFolder}/build/third_party/minizip/install/include", "${workspaceFolder}/build/third_party/nanoflann/install/include", "${workspaceFolder}/build/third_party/pybind11/install/include", - "${workspaceFolder}/build/third_party/spdlog/install/include" + "${workspaceFolder}/build/third_party/spdlog/install/include", + "${workspaceFolder}/build/third_party/json/install/include" ], "C_Cpp.default.browse.path": [ "${workspaceFolder}/include", @@ -23,7 +24,8 @@ "${workspaceFolder}/build/third_party/minizip/install/include", "${workspaceFolder}/build/third_party/nanoflann/install/include", "${workspaceFolder}/build/third_party/pybind11/install/include", - "${workspaceFolder}/build/third_party/spdlog/install/include" + "${workspaceFolder}/build/third_party/spdlog/install/include", + "${workspaceFolder}/build/third_party/json/install/include" ], "files.watcherExclude": { "${workspaceFolder}/build/**": true diff --git a/cmake/ConfigureJson.cmake b/cmake/ConfigureJson.cmake new file mode 100644 index 000000000..e49762b18 --- /dev/null +++ b/cmake/ConfigureJson.cmake @@ -0,0 +1,27 @@ +# +# Copyright (c) 2019 - 2026 Geode-solutions. All rights reserved. +# + + +set(JSON_PATH ${PROJECT_BINARY_DIR}/third_party/json) +set(JSON_INSTALL_PREFIX ${JSON_PATH}/install) +ExternalProject_Add(json + PREFIX ${JSON_PATH} + SOURCE_DIR ${JSON_PATH}/src + BINARY_DIR ${JSON_PATH}/build + STAMP_DIR ${JSON_PATH}/stamp + GIT_REPOSITORY https://github.com/nlohmann/json + GIT_TAG v3.11.3 + GIT_SHALLOW ON + GIT_PROGRESS ON + CMAKE_GENERATOR ${CMAKE_GENERATOR} + CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM} + CMAKE_ARGS + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_INSTALL_MESSAGE=LAZY + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:PATH=${JSON_INSTALL_PREFIX} + -DJSON_BuildTests:BOOL=OFF + -DJSON_MultipleHeaders:BOOL=ON +) diff --git a/cmake/ConfigureOpenGeode.cmake b/cmake/ConfigureOpenGeode.cmake index 08dfbf08b..b2db56de9 100644 --- a/cmake/ConfigureOpenGeode.cmake +++ b/cmake/ConfigureOpenGeode.cmake @@ -56,6 +56,7 @@ ExternalProject_Add(opengeode -DPYBIND11_INSTALL_PREFIX:PATH=${PYBIND11_INSTALL_PREFIX} -DPYBIND11_PYTHON_VERSION:STRING=${PYTHON_VERSION} -DCMAKE_INSTALL_PREFIX:PATH=${OpenGeode_PATH_INSTALL} + -DJSON_INSTALL_PREFIX:PATH=${JSON_INSTALL_PREFIX} BINARY_DIR ${OpenGeode_PATH_BIN} DEPENDS abseil @@ -66,6 +67,7 @@ ExternalProject_Add(opengeode minizip nanoflann spdlog + json ${bindings} ) diff --git a/cmake/OpenGeode.cmake b/cmake/OpenGeode.cmake index 7c67b18e4..9fabc323b 100644 --- a/cmake/OpenGeode.cmake +++ b/cmake/OpenGeode.cmake @@ -35,6 +35,7 @@ find_package(earcut_hpp REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${EARCUT_INSTALL_P find_package(minizip-ng REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${MINIZIP_INSTALL_PREFIX}) find_package(nanoflann REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${NANOFLANN_INSTALL_PREFIX}) find_package(spdlog REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${SPDLOG_INSTALL_PREFIX}) +find_package(nlohmann_json REQUIRED CONFIG NO_DEFAULT_PATH PATHS ${JSON_INSTALL_PREFIX}) find_package(Threads REQUIRED) # Install OpenGeode third-parties @@ -58,6 +59,7 @@ if(NOT BUILD_SHARED_LIBS) ${NANOFLANN_INSTALL_PREFIX}/ ${SPDLOG_INSTALL_PREFIX}/ ${SQLITE_INSTALL_PREFIX}/ + ${JSON_INSTALL_PREFIX}/ DESTINATION . COMPONENT diff --git a/cmake/OpenGeodeConfig.cmake.in b/cmake/OpenGeodeConfig.cmake.in index 9aa673860..3969411a7 100644 --- a/cmake/OpenGeodeConfig.cmake.in +++ b/cmake/OpenGeodeConfig.cmake.in @@ -47,6 +47,7 @@ if(library_type STREQUAL "STATIC_LIBRARY") find_dependency(minizip-ng) find_dependency(nanoflann) find_dependency(spdlog) + find_dependency(nlohmann_json CONFIG) endif() set(CMAKE_CXX_STANDARD @OPENGEODE_CXX_STANDARD@) diff --git a/cmake/SuperBuild.cmake b/cmake/SuperBuild.cmake index aa0e3bf62..463b354b4 100644 --- a/cmake/SuperBuild.cmake +++ b/cmake/SuperBuild.cmake @@ -58,6 +58,7 @@ include(${PROJECT_SOURCE_DIR}/cmake/ConfigureSpdlog.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigureSQLite.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigurePROJ.cmake) include(${PROJECT_SOURCE_DIR}/cmake/ConfigureGDAL.cmake) +include(${PROJECT_SOURCE_DIR}/cmake/ConfigureJson.cmake) if(OPENGEODE_WITH_PYTHON OR INCLUDE_PYBIND11) include(${PROJECT_SOURCE_DIR}/cmake/ConfigurePybind11.cmake) diff --git a/include/geode/basic/input.hpp b/include/geode/basic/input.hpp index 5b981de22..8fb46c363 100644 --- a/include/geode/basic/input.hpp +++ b/include/geode/basic/input.hpp @@ -23,6 +23,8 @@ #pragma once +#include + #include #include #include From 2fcaba96c360885bb7aed78aab1cb2353d40c0e4 Mon Sep 17 00:00:00 2001 From: BenPinet Date: Mon, 4 May 2026 16:15:44 +0200 Subject: [PATCH 2/3] arnaud's comment --- cmake/OpenGeodeConfig.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/OpenGeodeConfig.cmake.in b/cmake/OpenGeodeConfig.cmake.in index 3969411a7..5222dd224 100644 --- a/cmake/OpenGeodeConfig.cmake.in +++ b/cmake/OpenGeodeConfig.cmake.in @@ -47,7 +47,7 @@ if(library_type STREQUAL "STATIC_LIBRARY") find_dependency(minizip-ng) find_dependency(nanoflann) find_dependency(spdlog) - find_dependency(nlohmann_json CONFIG) + find_dependency(nlohmann_json) endif() set(CMAKE_CXX_STANDARD @OPENGEODE_CXX_STANDARD@) From dde58481b8f158a298328be40022e804fa43e635 Mon Sep 17 00:00:00 2001 From: BenPinet Date: Mon, 4 May 2026 17:21:31 +0200 Subject: [PATCH 3/3] add missing thing in opengeode --- cmake/OpenGeode.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/OpenGeode.cmake b/cmake/OpenGeode.cmake index 9fabc323b..68ba4ae98 100644 --- a/cmake/OpenGeode.cmake +++ b/cmake/OpenGeode.cmake @@ -46,6 +46,7 @@ install( ${BITSERY_INSTALL_PREFIX}/ ${GDAL_INSTALL_PREFIX}/ ${PROJ_INSTALL_PREFIX}/ + ${JSON_INSTALL_PREFIX}/ DESTINATION . COMPONENT @@ -59,7 +60,6 @@ if(NOT BUILD_SHARED_LIBS) ${NANOFLANN_INSTALL_PREFIX}/ ${SPDLOG_INSTALL_PREFIX}/ ${SQLITE_INSTALL_PREFIX}/ - ${JSON_INSTALL_PREFIX}/ DESTINATION . COMPONENT