blob: 7327d0dde2427ed335de12a0edb06e787de554fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
diff -up ./CMakeLists.txt.offline ./CMakeLists.txt
--- ./CMakeLists.txt.offline 2025-06-19 23:11:29.000000000 +0200
+++ ./CMakeLists.txt 2025-08-06 15:07:48.607390466 +0200
@@ -69,6 +69,13 @@ else()
endif()
endif()
+if(VALKEY_INCLUDE_DIR)
+ if(ENABLE_UNIT_TESTS OR ENABLE_INTEGRATION_TESTS)
+ message(FATAL_ERROR "Incompatible option VALKEY_INCLUDE_DIR with ENABLE_UNIT_TESTS or ENABLE_INTEGRATION_TESTS")
+ endif()
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/include")
+ file(COPY_FILE "${VALKEY_INCLUDE_DIR}/valkeymodule.h" "${CMAKE_CURRENT_SOURCE_DIR}/src/include/valkeymodule.h")
+else()
ExternalProject_Add(
valkey
GIT_REPOSITORY https://github.com/valkey-io/valkey.git
@@ -94,6 +101,7 @@ ExternalProject_Add_Step(
COMMAND ${CMAKE_COMMAND} -E copy ${VALKEY_DOWNLOAD_DIR}/src/valkey/src/valkeymodule.h ${VALKEY_INCLUDE_DIR}/valkeymodule.h
ALWAYS 1
)
+endif()
# Integration tests require the valkey-test-framework which is only needed when
# building Valkey from source.
@@ -171,11 +179,18 @@ message("CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}
message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
# Fetch RapidJSON
+if(RAPIDJSON_SOURCE_DIR)
+FetchContent_Declare(
+ rapidjson
+ SOURCE_DIR "${RAPIDJSON_SOURCE_DIR}"
+)
+else()
FetchContent_Declare(
rapidjson
GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
GIT_TAG ebd87cb468fb4cb060b37e579718c4a4125416c1
)
+endif()
# Disable RapidJSON tests and examples
set(RAPIDJSON_BUILD_TESTS OFF CACHE BOOL "Build rapidjson tests" FORCE)
diff -up ./src/CMakeLists.txt.offline ./src/CMakeLists.txt
--- ./src/CMakeLists.txt.offline 2025-06-19 23:11:29.000000000 +0200
+++ ./src/CMakeLists.txt 2025-08-06 15:09:25.030234068 +0200
@@ -39,4 +39,7 @@ target_sources(${OBJECT_TARGET}
)
add_library(${JSON_MODULE_LIB} SHARED $<TARGET_OBJECTS:${OBJECT_TARGET}>)
+
+if(ENABLE_UNIT_TESTS OR ENABLE_INTEGRATION_TESTS)
add_dependencies(${OBJECT_TARGET} valkey)
+endif()
|