From 088a741f18da2e1b76b44848552fda229846fbf6 Mon Sep 17 00:00:00 2001 From: yixinglu <2520865+yixinglu@users.noreply.github.com> Date: Fri, 28 Mar 2025 16:13:05 +0800 Subject: [PATCH 1/3] Add json library for rest api --- build/Makefile => Makefile | 2 +- README.md | 6 ++++ project/CMakeLists.txt | 10 ++++++ project/externals/expected-lite.cmake | 40 +++++++++++++++++++++++ project/externals/jinja2cpp.cmake | 41 ++++++++++++++++++++++++ project/externals/optional-lite.cmake | 40 +++++++++++++++++++++++ project/externals/string-view-lite.cmake | 40 +++++++++++++++++++++++ project/externals/valijson.cmake | 39 ++++++++++++++++++++++ project/externals/variant-lite.cmake | 40 +++++++++++++++++++++++ 9 files changed, 257 insertions(+), 1 deletion(-) rename build/Makefile => Makefile (88%) create mode 100644 project/externals/expected-lite.cmake create mode 100644 project/externals/jinja2cpp.cmake create mode 100644 project/externals/optional-lite.cmake create mode 100644 project/externals/string-view-lite.cmake create mode 100644 project/externals/valijson.cmake create mode 100644 project/externals/variant-lite.cmake diff --git a/build/Makefile b/Makefile similarity index 88% rename from build/Makefile rename to Makefile index 6132356..c2aa365 100644 --- a/build/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ oss_endpoint := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^endpoint=(.*); oss_id := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^accessKeyID=(.*);\1;p' -rn $$HOME/.ossutilconfig) oss_secret := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^accessKeySecret=(.*);\1;p' -rn $$HOME/.ossutilconfig) -docker_cmd := docker run -v $$PWD/../docker/run.sh:/usr/src/third-party/run.sh -v $$PWD/packages:/data +docker_cmd := docker run -v $$PWD/docker/run.sh:/usr/src/third-party/run.sh -v $$PWD/build/packages:/data ifneq ($(oss_endpoint),) docker_cmd += -e OSS_ENDPOINT=$(oss_endpoint) -e OSS_ID=$(oss_id) -e OSS_SECRET=$(oss_secret) endif diff --git a/README.md b/README.md index e2ac603..1734fc7 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ * googletest * gperf * jemalloc + * jinja2cpp * ldap * libcurl * libdwarf @@ -27,6 +28,10 @@ * lz4 * lzma * mstch + * nonstd::expected-lite + * nonstd::optional-lite + * nonstd::string-view-lite + * nonstd::variant-lite * openssl * proxygen * rocksdb @@ -34,6 +39,7 @@ * simdjson * snappy * sodium + * valijson * wangle * zlib * zstd diff --git a/project/CMakeLists.txt b/project/CMakeLists.txt index 1e7c999..6a94960 100644 --- a/project/CMakeLists.txt +++ b/project/CMakeLists.txt @@ -217,6 +217,7 @@ set(ALL_TARGETS googletest gperf jemalloc + jinja2cpp ldap libcurl libdwarf @@ -240,6 +241,7 @@ set(ALL_TARGETS zlib zstd utf8proc + valijson llvm arrow datasketches @@ -255,6 +257,10 @@ set(ALL_TARGETS openblas annoy libxml2 + expected-lite + optional-lite + string-view-lite + variant-lite ) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) @@ -348,6 +354,10 @@ maybe_add_dependencies(re2 abseil) maybe_add_dependencies(grpc protobuf re2 c-ares openssl) maybe_add_dependencies(faiss openblas) +# JSON +maybe_add_dependencies(valijson boost) +maybe_add_dependencies(jinja2cpp boost fmt expected-lite string-view-lite optional-lite variant-lite) + add_custom_target( clean-all DEPENDS ${CLEAN_TARGETS} diff --git a/project/externals/expected-lite.cmake b/project/externals/expected-lite.cmake new file mode 100644 index 0000000..b65a95f --- /dev/null +++ b/project/externals/expected-lite.cmake @@ -0,0 +1,40 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under BSL-1.0 License. + +set(name expected-lite) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/martinmoene/expected-lite/archive/refs/tags/v0.8.0.tar.gz + URL_HASH MD5=01c630be299c57ccb6491a63cd0e1258 + DOWNLOAD_NAME ${name}-0.8.0.tar.gz + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -DEXPECTED_LITE_OPT_BUILD_TESTS=OFF + -DEXPECTED_LITE_OPT_BUILD_EXAMPLES=OFF + -DEXPECTED_LITE_OPT_SELECT_STD=ON + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/jinja2cpp.cmake b/project/externals/jinja2cpp.cmake new file mode 100644 index 0000000..84ad60d --- /dev/null +++ b/project/externals/jinja2cpp.cmake @@ -0,0 +1,41 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under MPL-2.0 License. + +set(name jinja2cpp) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/jinja2cpp/Jinja2Cpp/archive/refs/tags/1.3.2.tar.gz + URL_HASH MD5=a046fd7575d1c6124b192af0e8185899 + DOWNLOAD_NAME ${name}-1.3.2.tar.gz + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -DJINJA2CPP_WITH_JSON_BINDINGS=boost + -DJINJA2CPP_DEPS_MODE=external + -DJINJA2CPP_BUILD_TESTS=OFF + -DJINJA2CPP_BUILD_SHARED=ON + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/optional-lite.cmake b/project/externals/optional-lite.cmake new file mode 100644 index 0000000..fc56562 --- /dev/null +++ b/project/externals/optional-lite.cmake @@ -0,0 +1,40 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under BSL-1.0 License. + +set(name optional-lite) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/martinmoene/optional-lite/archive/refs/tags/v3.6.0.tar.gz + URL_HASH MD5=42efc5787e823a8bc8967d15048a98bc + DOWNLOAD_NAME ${name}-3.6.0.tar.gz + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -DOPTIONAL_LITE_OPT_BUILD_TESTS=OFF + -DOPTIONAL_LITE_OPT_BUILD_EXAMPLES=OFF + -DOPTIONAL_LITE_OPT_SELECT_STD=ON + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/string-view-lite.cmake b/project/externals/string-view-lite.cmake new file mode 100644 index 0000000..01f2f36 --- /dev/null +++ b/project/externals/string-view-lite.cmake @@ -0,0 +1,40 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under BSL-1.0 License. + +set(name string-view-lite) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/martinmoene/string-view-lite/archive/refs/tags/v1.8.0.tar.gz + URL_HASH MD5=21c8279858fa8c65ff0ff8ff4033a2e4 + DOWNLOAD_NAME ${name}-1.8.0.tar.gz + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -DSTRING_VIEW_LITE_OPT_BUILD_TESTS=OFF + -DSTRING_VIEW_LITE_OPT_BUILD_EXAMPLES=OFF + -DSTRING_VIEW_LITE_OPT_SELECT_STD=ON + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/valijson.cmake b/project/externals/valijson.cmake new file mode 100644 index 0000000..9f7e672 --- /dev/null +++ b/project/externals/valijson.cmake @@ -0,0 +1,39 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under BSD-2-Clause License. + +set(name valijson) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/tristanpenman/valijson/archive/refs/tags/v1.0.4.tar.gz + URL_HASH MD5=8149558a10e73dc39a7a6baef1b3d19c + DOWNLOAD_NAME ${name}-1.0.4.tar.gz + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -Dvalijson_BUILD_EXAMPLES=OFF + -Dvalijson_BUILD_TESTS=OFF + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/variant-lite.cmake b/project/externals/variant-lite.cmake new file mode 100644 index 0000000..81a52e5 --- /dev/null +++ b/project/externals/variant-lite.cmake @@ -0,0 +1,40 @@ +# Copyright (c) 2025 vesoft inc. All rights reserved. +# +# This source code is licensed under BSL-1.0 License. + +set(name variant-lite) +set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) +ExternalProject_Add( + ${name} + URL https://github.com/martinmoene/variant-lite/archive/7e3bce818adb69bab27ccb982ea1b6779c2e379e.zip + URL_HASH MD5=b127526ab077edd2ba1f16ff2cc426f2 + DOWNLOAD_NAME ${name}-master.zip + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} + TMP_DIR ${BUILD_INFO_DIR} + STAMP_DIR ${BUILD_INFO_DIR} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + SOURCE_DIR ${source_dir} + CMAKE_ARGS + ${common_cmake_args} + -DVARIANT_LITE_OPT_BUILD_TESTS=OFF + -DVARIANT_LITE_OPT_BUILD_EXAMPLES=OFF + -DVARIANT_LITE_OPT_SELECT_STD=ON + -DCMAKE_BUILD_TYPE=Release + BUILD_IN_SOURCE 1 + BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} + INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE +) + +ExternalProject_Add_Step(${name} clean + EXCLUDE_FROM_MAIN TRUE + ALWAYS TRUE + DEPENDEES configure + COMMAND make clean -j + COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build + WORKING_DIRECTORY ${source_dir} +) + +ExternalProject_Add_StepTargets(${name} clean) From c3ddaface67f9d0914359cd867fb380b26986743 Mon Sep 17 00:00:00 2001 From: yixinglu <2520865+yixinglu@users.noreply.github.com> Date: Fri, 28 Mar 2025 17:02:33 +0800 Subject: [PATCH 2/3] Patch jinja2cpp --- project/externals/boost.cmake | 2 +- project/externals/jinja2cpp.cmake | 2 ++ project/patches/jinja2cpp-1.3.2.patch | 34 +++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 project/patches/jinja2cpp-1.3.2.patch diff --git a/project/externals/boost.cmake b/project/externals/boost.cmake index f9ba50e..29a57ef 100644 --- a/project/externals/boost.cmake +++ b/project/externals/boost.cmake @@ -31,7 +31,7 @@ ExternalProject_Add( CONFIGURE_COMMAND ./bootstrap.sh --without-icu - --with-libraries=context,thread,system,filesystem,graph,program_options,regex,iostreams,date_time,python + --with-libraries=context,thread,system,filesystem,graph,program_options,regex,iostreams,date_time,python,json --prefix=${CMAKE_INSTALL_PREFIX} #--without-libraries=wave,nowide,chrono,atomic,fiber,type_erasure,exception,timer,contract,math,locale,json,test,stacktrace,mpi,log,graph,graph_parallel BUILD_COMMAND diff --git a/project/externals/jinja2cpp.cmake b/project/externals/jinja2cpp.cmake index 84ad60d..a02b945 100644 --- a/project/externals/jinja2cpp.cmake +++ b/project/externals/jinja2cpp.cmake @@ -14,12 +14,14 @@ ExternalProject_Add( STAMP_DIR ${BUILD_INFO_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR} SOURCE_DIR ${source_dir} + PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/patches/${name}-1.3.2.patch CMAKE_ARGS ${common_cmake_args} -DJINJA2CPP_WITH_JSON_BINDINGS=boost -DJINJA2CPP_DEPS_MODE=external -DJINJA2CPP_BUILD_TESTS=OFF -DJINJA2CPP_BUILD_SHARED=ON + -DJINJA2CPP_INSTALL=OFF -DCMAKE_BUILD_TYPE=Release BUILD_IN_SOURCE 1 BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} diff --git a/project/patches/jinja2cpp-1.3.2.patch b/project/patches/jinja2cpp-1.3.2.patch new file mode 100644 index 0000000..69be846 --- /dev/null +++ b/project/patches/jinja2cpp-1.3.2.patch @@ -0,0 +1,34 @@ +--- a/thirdparty/thirdparty-external.cmake ++++ b/thirdparty/thirdparty-external.cmake +@@ -38,19 +38,10 @@ + find_hdr_package(variant-lite nonstd/variant.hpp) + find_hdr_package(optional-lite nonstd/optional.hpp) + find_hdr_package(string-view-lite nonstd/string_view.hpp) +-find_hdr_package(fmt-header-only fmt/format.h) ++find_hdr_package(fmt fmt/format.h) + +-find_package(RapidJSON) +-add_library(RapidJson INTERFACE) +-target_include_directories(RapidJson +- INTERFACE +- $ +- $ +- ) +- +-if (TARGET fmt-header-only) +- target_compile_definitions(fmt-header-only INTERFACE FMT_HEADER_ONLY=1) +- add_library(fmt ALIAS fmt-header-only) ++if (TARGET fmt) ++ target_compile_definitions(fmt INTERFACE FMT_HEADER_ONLY=0) + endif () + + if(JINJA2CPP_INSTALL) +@@ -62,7 +53,7 @@ + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nonstd + ) + +- install(TARGETS fmt-header-only ++ install(TARGETS fmt + EXPORT InstallTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} From 196b42b5500c21c3558d9f185bf00b8662219df4 Mon Sep 17 00:00:00 2001 From: yixinglu <2520865+yixinglu@users.noreply.github.com> Date: Sat, 29 Mar 2025 23:32:44 +0800 Subject: [PATCH 3/3] Replace the jinja2cpp with inja --- README.md | 7 +-- project/CMakeLists.txt | 11 ++--- project/externals/boost.cmake | 2 +- .../{expected-lite.cmake => inja.cmake} | 16 +++---- project/externals/jinja2cpp.cmake | 43 ------------------- ...variant-lite.cmake => nlohmann-json.cmake} | 16 +++---- project/externals/optional-lite.cmake | 40 ----------------- project/externals/string-view-lite.cmake | 40 ----------------- project/externals/valijson.cmake | 1 + project/patches/jinja2cpp-1.3.2.patch | 34 --------------- 10 files changed, 24 insertions(+), 186 deletions(-) rename project/externals/{expected-lite.cmake => inja.cmake} (69%) delete mode 100644 project/externals/jinja2cpp.cmake rename project/externals/{variant-lite.cmake => nlohmann-json.cmake} (67%) delete mode 100644 project/externals/optional-lite.cmake delete mode 100644 project/externals/string-view-lite.cmake delete mode 100644 project/patches/jinja2cpp-1.3.2.patch diff --git a/README.md b/README.md index 1734fc7..32be797 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ * googlebenchmark * googletest * gperf + * inja * jemalloc - * jinja2cpp * ldap * libcurl * libdwarf @@ -28,10 +28,7 @@ * lz4 * lzma * mstch - * nonstd::expected-lite - * nonstd::optional-lite - * nonstd::string-view-lite - * nonstd::variant-lite + * nlohmann/json * openssl * proxygen * rocksdb diff --git a/project/CMakeLists.txt b/project/CMakeLists.txt index 6a94960..c72a99e 100644 --- a/project/CMakeLists.txt +++ b/project/CMakeLists.txt @@ -216,8 +216,8 @@ set(ALL_TARGETS googlebenchmark googletest gperf + inja jemalloc - jinja2cpp ldap libcurl libdwarf @@ -227,6 +227,7 @@ set(ALL_TARGETS lz4 lzma mstch + nlohmann-json openssl proxygen robin-hood-hashing @@ -257,10 +258,6 @@ set(ALL_TARGETS openblas annoy libxml2 - expected-lite - optional-lite - string-view-lite - variant-lite ) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) @@ -355,8 +352,8 @@ maybe_add_dependencies(grpc protobuf re2 c-ares openssl) maybe_add_dependencies(faiss openblas) # JSON -maybe_add_dependencies(valijson boost) -maybe_add_dependencies(jinja2cpp boost fmt expected-lite string-view-lite optional-lite variant-lite) +maybe_add_dependencies(valijson nlohmann-json) +maybe_add_dependencies(inja nlohmann-json) add_custom_target( clean-all diff --git a/project/externals/boost.cmake b/project/externals/boost.cmake index 29a57ef..f9ba50e 100644 --- a/project/externals/boost.cmake +++ b/project/externals/boost.cmake @@ -31,7 +31,7 @@ ExternalProject_Add( CONFIGURE_COMMAND ./bootstrap.sh --without-icu - --with-libraries=context,thread,system,filesystem,graph,program_options,regex,iostreams,date_time,python,json + --with-libraries=context,thread,system,filesystem,graph,program_options,regex,iostreams,date_time,python --prefix=${CMAKE_INSTALL_PREFIX} #--without-libraries=wave,nowide,chrono,atomic,fiber,type_erasure,exception,timer,contract,math,locale,json,test,stacktrace,mpi,log,graph,graph_parallel BUILD_COMMAND diff --git a/project/externals/expected-lite.cmake b/project/externals/inja.cmake similarity index 69% rename from project/externals/expected-lite.cmake rename to project/externals/inja.cmake index b65a95f..84a20a0 100644 --- a/project/externals/expected-lite.cmake +++ b/project/externals/inja.cmake @@ -1,14 +1,14 @@ # Copyright (c) 2025 vesoft inc. All rights reserved. # -# This source code is licensed under BSL-1.0 License. +# This source code is licensed under MIT License. -set(name expected-lite) +set(name inja) set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) ExternalProject_Add( ${name} - URL https://github.com/martinmoene/expected-lite/archive/refs/tags/v0.8.0.tar.gz - URL_HASH MD5=01c630be299c57ccb6491a63cd0e1258 - DOWNLOAD_NAME ${name}-0.8.0.tar.gz + URL https://github.com/pantor/inja/archive/34514c2658f809404b9a165591f242ee10250519.zip + URL_HASH MD5=f537dae8df3993c89f2d677953d2b08a + DOWNLOAD_NAME ${name}-master-2025-03-19.zip PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} TMP_DIR ${BUILD_INFO_DIR} STAMP_DIR ${BUILD_INFO_DIR} @@ -16,9 +16,9 @@ ExternalProject_Add( SOURCE_DIR ${source_dir} CMAKE_ARGS ${common_cmake_args} - -DEXPECTED_LITE_OPT_BUILD_TESTS=OFF - -DEXPECTED_LITE_OPT_BUILD_EXAMPLES=OFF - -DEXPECTED_LITE_OPT_SELECT_STD=ON + -DINJA_USE_EMBEDDED_JSON=OFF + -DBUILD_TESTING=OFF + -DBUILD_BENCHMARK=OFF -DCMAKE_BUILD_TYPE=Release BUILD_IN_SOURCE 1 BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} diff --git a/project/externals/jinja2cpp.cmake b/project/externals/jinja2cpp.cmake deleted file mode 100644 index a02b945..0000000 --- a/project/externals/jinja2cpp.cmake +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2025 vesoft inc. All rights reserved. -# -# This source code is licensed under MPL-2.0 License. - -set(name jinja2cpp) -set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) -ExternalProject_Add( - ${name} - URL https://github.com/jinja2cpp/Jinja2Cpp/archive/refs/tags/1.3.2.tar.gz - URL_HASH MD5=a046fd7575d1c6124b192af0e8185899 - DOWNLOAD_NAME ${name}-1.3.2.tar.gz - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} - TMP_DIR ${BUILD_INFO_DIR} - STAMP_DIR ${BUILD_INFO_DIR} - DOWNLOAD_DIR ${DOWNLOAD_DIR} - SOURCE_DIR ${source_dir} - PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/patches/${name}-1.3.2.patch - CMAKE_ARGS - ${common_cmake_args} - -DJINJA2CPP_WITH_JSON_BINDINGS=boost - -DJINJA2CPP_DEPS_MODE=external - -DJINJA2CPP_BUILD_TESTS=OFF - -DJINJA2CPP_BUILD_SHARED=ON - -DJINJA2CPP_INSTALL=OFF - -DCMAKE_BUILD_TYPE=Release - BUILD_IN_SOURCE 1 - BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} - INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install - LOG_CONFIGURE TRUE - LOG_BUILD TRUE - LOG_INSTALL TRUE -) - -ExternalProject_Add_Step(${name} clean - EXCLUDE_FROM_MAIN TRUE - ALWAYS TRUE - DEPENDEES configure - COMMAND make clean -j - COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build - WORKING_DIRECTORY ${source_dir} -) - -ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/variant-lite.cmake b/project/externals/nlohmann-json.cmake similarity index 67% rename from project/externals/variant-lite.cmake rename to project/externals/nlohmann-json.cmake index 81a52e5..3bd591e 100644 --- a/project/externals/variant-lite.cmake +++ b/project/externals/nlohmann-json.cmake @@ -1,14 +1,14 @@ # Copyright (c) 2025 vesoft inc. All rights reserved. # -# This source code is licensed under BSL-1.0 License. +# This source code is licensed under MIT License. -set(name variant-lite) +set(name nlohmann-json) set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) ExternalProject_Add( ${name} - URL https://github.com/martinmoene/variant-lite/archive/7e3bce818adb69bab27ccb982ea1b6779c2e379e.zip - URL_HASH MD5=b127526ab077edd2ba1f16ff2cc426f2 - DOWNLOAD_NAME ${name}-master.zip + URL https://github.com/nlohmann/json/archive/3a5703931ad70852b668a46cac34354d1b264442.zip + URL_HASH MD5=8c83312dd3fbf657e144be77799cfeba + DOWNLOAD_NAME ${name}-develop-2025-03-29.tar.gz PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} TMP_DIR ${BUILD_INFO_DIR} STAMP_DIR ${BUILD_INFO_DIR} @@ -16,9 +16,9 @@ ExternalProject_Add( SOURCE_DIR ${source_dir} CMAKE_ARGS ${common_cmake_args} - -DVARIANT_LITE_OPT_BUILD_TESTS=OFF - -DVARIANT_LITE_OPT_BUILD_EXAMPLES=OFF - -DVARIANT_LITE_OPT_SELECT_STD=ON + -DNLOHMANN_JSON_CONFIG_INSTALL_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/nlohmann_json + -DJSON_BuildTests=OFF + -DJSON_Install=ON -DCMAKE_BUILD_TYPE=Release BUILD_IN_SOURCE 1 BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} diff --git a/project/externals/optional-lite.cmake b/project/externals/optional-lite.cmake deleted file mode 100644 index fc56562..0000000 --- a/project/externals/optional-lite.cmake +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (c) 2025 vesoft inc. All rights reserved. -# -# This source code is licensed under BSL-1.0 License. - -set(name optional-lite) -set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) -ExternalProject_Add( - ${name} - URL https://github.com/martinmoene/optional-lite/archive/refs/tags/v3.6.0.tar.gz - URL_HASH MD5=42efc5787e823a8bc8967d15048a98bc - DOWNLOAD_NAME ${name}-3.6.0.tar.gz - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} - TMP_DIR ${BUILD_INFO_DIR} - STAMP_DIR ${BUILD_INFO_DIR} - DOWNLOAD_DIR ${DOWNLOAD_DIR} - SOURCE_DIR ${source_dir} - CMAKE_ARGS - ${common_cmake_args} - -DOPTIONAL_LITE_OPT_BUILD_TESTS=OFF - -DOPTIONAL_LITE_OPT_BUILD_EXAMPLES=OFF - -DOPTIONAL_LITE_OPT_SELECT_STD=ON - -DCMAKE_BUILD_TYPE=Release - BUILD_IN_SOURCE 1 - BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} - INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install - LOG_CONFIGURE TRUE - LOG_BUILD TRUE - LOG_INSTALL TRUE -) - -ExternalProject_Add_Step(${name} clean - EXCLUDE_FROM_MAIN TRUE - ALWAYS TRUE - DEPENDEES configure - COMMAND make clean -j - COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build - WORKING_DIRECTORY ${source_dir} -) - -ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/string-view-lite.cmake b/project/externals/string-view-lite.cmake deleted file mode 100644 index 01f2f36..0000000 --- a/project/externals/string-view-lite.cmake +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (c) 2025 vesoft inc. All rights reserved. -# -# This source code is licensed under BSL-1.0 License. - -set(name string-view-lite) -set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source) -ExternalProject_Add( - ${name} - URL https://github.com/martinmoene/string-view-lite/archive/refs/tags/v1.8.0.tar.gz - URL_HASH MD5=21c8279858fa8c65ff0ff8ff4033a2e4 - DOWNLOAD_NAME ${name}-1.8.0.tar.gz - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name} - TMP_DIR ${BUILD_INFO_DIR} - STAMP_DIR ${BUILD_INFO_DIR} - DOWNLOAD_DIR ${DOWNLOAD_DIR} - SOURCE_DIR ${source_dir} - CMAKE_ARGS - ${common_cmake_args} - -DSTRING_VIEW_LITE_OPT_BUILD_TESTS=OFF - -DSTRING_VIEW_LITE_OPT_BUILD_EXAMPLES=OFF - -DSTRING_VIEW_LITE_OPT_SELECT_STD=ON - -DCMAKE_BUILD_TYPE=Release - BUILD_IN_SOURCE 1 - BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM} - INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install - LOG_CONFIGURE TRUE - LOG_BUILD TRUE - LOG_INSTALL TRUE -) - -ExternalProject_Add_Step(${name} clean - EXCLUDE_FROM_MAIN TRUE - ALWAYS TRUE - DEPENDEES configure - COMMAND make clean -j - COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build - WORKING_DIRECTORY ${source_dir} -) - -ExternalProject_Add_StepTargets(${name} clean) diff --git a/project/externals/valijson.cmake b/project/externals/valijson.cmake index 9f7e672..875e194 100644 --- a/project/externals/valijson.cmake +++ b/project/externals/valijson.cmake @@ -16,6 +16,7 @@ ExternalProject_Add( SOURCE_DIR ${source_dir} CMAKE_ARGS ${common_cmake_args} + -Dvalijson_USE_EXCEPTIONS=ON -Dvalijson_BUILD_EXAMPLES=OFF -Dvalijson_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release diff --git a/project/patches/jinja2cpp-1.3.2.patch b/project/patches/jinja2cpp-1.3.2.patch deleted file mode 100644 index 69be846..0000000 --- a/project/patches/jinja2cpp-1.3.2.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/thirdparty/thirdparty-external.cmake -+++ b/thirdparty/thirdparty-external.cmake -@@ -38,19 +38,10 @@ - find_hdr_package(variant-lite nonstd/variant.hpp) - find_hdr_package(optional-lite nonstd/optional.hpp) - find_hdr_package(string-view-lite nonstd/string_view.hpp) --find_hdr_package(fmt-header-only fmt/format.h) -+find_hdr_package(fmt fmt/format.h) - --find_package(RapidJSON) --add_library(RapidJson INTERFACE) --target_include_directories(RapidJson -- INTERFACE -- $ -- $ -- ) -- --if (TARGET fmt-header-only) -- target_compile_definitions(fmt-header-only INTERFACE FMT_HEADER_ONLY=1) -- add_library(fmt ALIAS fmt-header-only) -+if (TARGET fmt) -+ target_compile_definitions(fmt INTERFACE FMT_HEADER_ONLY=0) - endif () - - if(JINJA2CPP_INSTALL) -@@ -62,7 +53,7 @@ - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nonstd - ) - -- install(TARGETS fmt-header-only -+ install(TARGETS fmt - EXPORT InstallTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}