forked from FalkorDB/FalkorDB
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
70 lines (49 loc) · 1.61 KB
/
CMakeLists.txt
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
cmake_minimum_required(VERSION 3.13)
get_filename_component(root ${CMAKE_CURRENT_LIST_DIR} ABSOLUTE)
include(${root}/deps/readies/cmake/main)
SET(CMAKE_EXPORT_COMPILE_COMMANDS on)
if (NOT DEFINED UNIT_TESTS)
set(UNIT_TESTS OFF)
endif()
project(falkordb)
setup_cc_options()
file(GLOB_RECURSE SOURCES "src/*.c")
add_library(falkordb SHARED ${SOURCES})
include_directories(
${root}/src
${root}
${root}/deps
${root}/deps/rax
${root}/deps/xxHash
${root}/deps/utf8proc
${root}/deps/oniguruma
${root}/deps/RediSearch/src
${root}/deps/GraphBLAS/Include
${root}/deps/libcypher-parser/lib/src
$ENV{LIBCYPHER_PARSER_BINDIR}/lib/src)
add_compile_definitions(
_GNU_SOURCE
REDIS_MODULE_TARGET
REDISMODULE_EXPERIMENTAL_API
XXH_STATIC_LINKING_ONLY)
if (DEBUG)
add_compile_definitions(RG_DEBUG)
endif()
if (MEMCHECK)
add_compile_definitions(MEMCHECK)
endif()
setup_shared_object_target(falkordb "")
set_target_properties(falkordb PROPERTIES LINKER_LANGUAGE CXX)
set(FALKORDB_OBJECTS $<TARGET_OBJECTS:falkordb>)
find_package(OpenSSL)
lists_from_env(GRAPHBLAS LIBXXHASH RAX LIBCYPHER_PARSER REDISEARCH_LIBS UTF8PROC ONIGURUMA FalkorDBRS)
set(FALKORDB_LIBS ${GRAPHBLAS} ${LIBXXHASH} ${RAX} ${LIBCYPHER_PARSER} ${REDISEARCH_LIBS} ${UTF8PROC} ${ONIGURUMA} ${FalkorDBRS} OpenSSL::SSL)
target_link_options(falkordb PRIVATE ${CMAKE_LD_FLAGS_LIST} ${CMAKE_SO_LD_FLAGS_LIST})
target_link_libraries(falkordb PRIVATE ${FALKORDB_LIBS} ${CMAKE_LD_LIBS})
extract_debug_symbols(falkordb)
if (APPLE)
add_library(falkordb_static STATIC $<TARGET_OBJECTS:falkordb>)
endif()
if (UNIT_TESTS)
add_subdirectory(${root}/tests/unit tests/unit)
endif()