Skip to content

Commit 088a741

Browse files
committed
Add json library for rest api
1 parent cdb4542 commit 088a741

9 files changed

+257
-1
lines changed

build/Makefile renamed to Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ oss_endpoint := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^endpoint=(.*);
1111
oss_id := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^accessKeyID=(.*);\1;p' -rn $$HOME/.ossutilconfig)
1212
oss_secret := $(shell [[ -f $$HOME/.ossutilconfig ]] && sed 's;^accessKeySecret=(.*);\1;p' -rn $$HOME/.ossutilconfig)
1313

14-
docker_cmd := docker run -v $$PWD/../docker/run.sh:/usr/src/third-party/run.sh -v $$PWD/packages:/data
14+
docker_cmd := docker run -v $$PWD/docker/run.sh:/usr/src/third-party/run.sh -v $$PWD/build/packages:/data
1515
ifneq ($(oss_endpoint),)
1616
docker_cmd += -e OSS_ENDPOINT=$(oss_endpoint) -e OSS_ID=$(oss_id) -e OSS_SECRET=$(oss_secret)
1717
endif

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
* googletest
2020
* gperf
2121
* jemalloc
22+
* jinja2cpp
2223
* ldap
2324
* libcurl
2425
* libdwarf
@@ -27,13 +28,18 @@
2728
* lz4
2829
* lzma
2930
* mstch
31+
* nonstd::expected-lite
32+
* nonstd::optional-lite
33+
* nonstd::string-view-lite
34+
* nonstd::variant-lite
3035
* openssl
3136
* proxygen
3237
* rocksdb
3338
* s2geometry
3439
* simdjson
3540
* snappy
3641
* sodium
42+
* valijson
3743
* wangle
3844
* zlib
3945
* zstd

project/CMakeLists.txt

+10
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ set(ALL_TARGETS
217217
googletest
218218
gperf
219219
jemalloc
220+
jinja2cpp
220221
ldap
221222
libcurl
222223
libdwarf
@@ -240,6 +241,7 @@ set(ALL_TARGETS
240241
zlib
241242
zstd
242243
utf8proc
244+
valijson
243245
llvm
244246
arrow
245247
datasketches
@@ -255,6 +257,10 @@ set(ALL_TARGETS
255257
openblas
256258
annoy
257259
libxml2
260+
expected-lite
261+
optional-lite
262+
string-view-lite
263+
variant-lite
258264
)
259265

260266
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
@@ -348,6 +354,10 @@ maybe_add_dependencies(re2 abseil)
348354
maybe_add_dependencies(grpc protobuf re2 c-ares openssl)
349355
maybe_add_dependencies(faiss openblas)
350356

357+
# JSON
358+
maybe_add_dependencies(valijson boost)
359+
maybe_add_dependencies(jinja2cpp boost fmt expected-lite string-view-lite optional-lite variant-lite)
360+
351361
add_custom_target(
352362
clean-all
353363
DEPENDS ${CLEAN_TARGETS}

project/externals/expected-lite.cmake

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under BSL-1.0 License.
4+
5+
set(name expected-lite)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/martinmoene/expected-lite/archive/refs/tags/v0.8.0.tar.gz
10+
URL_HASH MD5=01c630be299c57ccb6491a63cd0e1258
11+
DOWNLOAD_NAME ${name}-0.8.0.tar.gz
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-DEXPECTED_LITE_OPT_BUILD_TESTS=OFF
20+
-DEXPECTED_LITE_OPT_BUILD_EXAMPLES=OFF
21+
-DEXPECTED_LITE_OPT_SELECT_STD=ON
22+
-DCMAKE_BUILD_TYPE=Release
23+
BUILD_IN_SOURCE 1
24+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
25+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
26+
LOG_CONFIGURE TRUE
27+
LOG_BUILD TRUE
28+
LOG_INSTALL TRUE
29+
)
30+
31+
ExternalProject_Add_Step(${name} clean
32+
EXCLUDE_FROM_MAIN TRUE
33+
ALWAYS TRUE
34+
DEPENDEES configure
35+
COMMAND make clean -j
36+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
37+
WORKING_DIRECTORY ${source_dir}
38+
)
39+
40+
ExternalProject_Add_StepTargets(${name} clean)

project/externals/jinja2cpp.cmake

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under MPL-2.0 License.
4+
5+
set(name jinja2cpp)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/jinja2cpp/Jinja2Cpp/archive/refs/tags/1.3.2.tar.gz
10+
URL_HASH MD5=a046fd7575d1c6124b192af0e8185899
11+
DOWNLOAD_NAME ${name}-1.3.2.tar.gz
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-DJINJA2CPP_WITH_JSON_BINDINGS=boost
20+
-DJINJA2CPP_DEPS_MODE=external
21+
-DJINJA2CPP_BUILD_TESTS=OFF
22+
-DJINJA2CPP_BUILD_SHARED=ON
23+
-DCMAKE_BUILD_TYPE=Release
24+
BUILD_IN_SOURCE 1
25+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
26+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
27+
LOG_CONFIGURE TRUE
28+
LOG_BUILD TRUE
29+
LOG_INSTALL TRUE
30+
)
31+
32+
ExternalProject_Add_Step(${name} clean
33+
EXCLUDE_FROM_MAIN TRUE
34+
ALWAYS TRUE
35+
DEPENDEES configure
36+
COMMAND make clean -j
37+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
38+
WORKING_DIRECTORY ${source_dir}
39+
)
40+
41+
ExternalProject_Add_StepTargets(${name} clean)

project/externals/optional-lite.cmake

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under BSL-1.0 License.
4+
5+
set(name optional-lite)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/martinmoene/optional-lite/archive/refs/tags/v3.6.0.tar.gz
10+
URL_HASH MD5=42efc5787e823a8bc8967d15048a98bc
11+
DOWNLOAD_NAME ${name}-3.6.0.tar.gz
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-DOPTIONAL_LITE_OPT_BUILD_TESTS=OFF
20+
-DOPTIONAL_LITE_OPT_BUILD_EXAMPLES=OFF
21+
-DOPTIONAL_LITE_OPT_SELECT_STD=ON
22+
-DCMAKE_BUILD_TYPE=Release
23+
BUILD_IN_SOURCE 1
24+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
25+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
26+
LOG_CONFIGURE TRUE
27+
LOG_BUILD TRUE
28+
LOG_INSTALL TRUE
29+
)
30+
31+
ExternalProject_Add_Step(${name} clean
32+
EXCLUDE_FROM_MAIN TRUE
33+
ALWAYS TRUE
34+
DEPENDEES configure
35+
COMMAND make clean -j
36+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
37+
WORKING_DIRECTORY ${source_dir}
38+
)
39+
40+
ExternalProject_Add_StepTargets(${name} clean)
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under BSL-1.0 License.
4+
5+
set(name string-view-lite)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/martinmoene/string-view-lite/archive/refs/tags/v1.8.0.tar.gz
10+
URL_HASH MD5=21c8279858fa8c65ff0ff8ff4033a2e4
11+
DOWNLOAD_NAME ${name}-1.8.0.tar.gz
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-DSTRING_VIEW_LITE_OPT_BUILD_TESTS=OFF
20+
-DSTRING_VIEW_LITE_OPT_BUILD_EXAMPLES=OFF
21+
-DSTRING_VIEW_LITE_OPT_SELECT_STD=ON
22+
-DCMAKE_BUILD_TYPE=Release
23+
BUILD_IN_SOURCE 1
24+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
25+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
26+
LOG_CONFIGURE TRUE
27+
LOG_BUILD TRUE
28+
LOG_INSTALL TRUE
29+
)
30+
31+
ExternalProject_Add_Step(${name} clean
32+
EXCLUDE_FROM_MAIN TRUE
33+
ALWAYS TRUE
34+
DEPENDEES configure
35+
COMMAND make clean -j
36+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
37+
WORKING_DIRECTORY ${source_dir}
38+
)
39+
40+
ExternalProject_Add_StepTargets(${name} clean)

project/externals/valijson.cmake

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under BSD-2-Clause License.
4+
5+
set(name valijson)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/tristanpenman/valijson/archive/refs/tags/v1.0.4.tar.gz
10+
URL_HASH MD5=8149558a10e73dc39a7a6baef1b3d19c
11+
DOWNLOAD_NAME ${name}-1.0.4.tar.gz
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-Dvalijson_BUILD_EXAMPLES=OFF
20+
-Dvalijson_BUILD_TESTS=OFF
21+
-DCMAKE_BUILD_TYPE=Release
22+
BUILD_IN_SOURCE 1
23+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
24+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
25+
LOG_CONFIGURE TRUE
26+
LOG_BUILD TRUE
27+
LOG_INSTALL TRUE
28+
)
29+
30+
ExternalProject_Add_Step(${name} clean
31+
EXCLUDE_FROM_MAIN TRUE
32+
ALWAYS TRUE
33+
DEPENDEES configure
34+
COMMAND make clean -j
35+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
36+
WORKING_DIRECTORY ${source_dir}
37+
)
38+
39+
ExternalProject_Add_StepTargets(${name} clean)

project/externals/variant-lite.cmake

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Copyright (c) 2025 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under BSL-1.0 License.
4+
5+
set(name variant-lite)
6+
set(source_dir ${CMAKE_CURRENT_BINARY_DIR}/${name}/source)
7+
ExternalProject_Add(
8+
${name}
9+
URL https://github.com/martinmoene/variant-lite/archive/7e3bce818adb69bab27ccb982ea1b6779c2e379e.zip
10+
URL_HASH MD5=b127526ab077edd2ba1f16ff2cc426f2
11+
DOWNLOAD_NAME ${name}-master.zip
12+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/${name}
13+
TMP_DIR ${BUILD_INFO_DIR}
14+
STAMP_DIR ${BUILD_INFO_DIR}
15+
DOWNLOAD_DIR ${DOWNLOAD_DIR}
16+
SOURCE_DIR ${source_dir}
17+
CMAKE_ARGS
18+
${common_cmake_args}
19+
-DVARIANT_LITE_OPT_BUILD_TESTS=OFF
20+
-DVARIANT_LITE_OPT_BUILD_EXAMPLES=OFF
21+
-DVARIANT_LITE_OPT_SELECT_STD=ON
22+
-DCMAKE_BUILD_TYPE=Release
23+
BUILD_IN_SOURCE 1
24+
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}
25+
INSTALL_COMMAND make -s -j${BUILDING_JOBS_NUM} install
26+
LOG_CONFIGURE TRUE
27+
LOG_BUILD TRUE
28+
LOG_INSTALL TRUE
29+
)
30+
31+
ExternalProject_Add_Step(${name} clean
32+
EXCLUDE_FROM_MAIN TRUE
33+
ALWAYS TRUE
34+
DEPENDEES configure
35+
COMMAND make clean -j
36+
COMMAND rm -f ${BUILD_INFO_DIR}/${name}-build
37+
WORKING_DIRECTORY ${source_dir}
38+
)
39+
40+
ExternalProject_Add_StepTargets(${name} clean)

0 commit comments

Comments
 (0)