forked from bloomberg/comdb2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
69 lines (60 loc) · 1.91 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
set(src
cdb2api.c
${PROJECT_BINARY_DIR}/protobuf/sqlquery.pb-c.c
${PROJECT_BINARY_DIR}/protobuf/sqlresponse.pb-c.c
${PROJECT_SOURCE_DIR}/util/hostname_support.c
${PROJECT_SOURCE_DIR}/util/sbuf2.c
${PROJECT_SOURCE_DIR}/util/ssl_glue.c
${PROJECT_SOURCE_DIR}/util/ssl_support.c
${PROJECT_SOURCE_DIR}/util/walkback.c
)
set_source_files_properties(
${PROJECT_BINARY_DIR}/protobuf/sqlquery.pb-c.c
${PROJECT_BINARY_DIR}/protobuf/sqlresponse.pb-c.c
PROPERTIES GENERATED TRUE
)
include_directories(
${PROJECT_SOURCE_DIR}/bbinc
${PROJECT_SOURCE_DIR}/util
${PROJECT_BINARY_DIR}/protobuf
${PROTOBUF-C_INCLUDE_DIR}
${OPENSSL_INCLUDE_DIR}
)
if (EXTRA_PLUGINS)
include(${EXTRA_PLUGINS}/cdb2api/CMakeLists.txt)
endif()
# common obj files for .so/.dylib and .a
add_definitions(-DDISABLE_HOSTADDR_CACHE)
add_definitions(-DSBUF2_SERVER=0)
if (COMDB2_BBCMAKE)
add_library(opencdb2api STATIC ${src})
add_dependencies(opencdb2api proto)
target_link_libraries(opencdb2api PUBLIC protobuf-c)
if(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
target_link_libraries(opencdb2api PUBLIC libunwind)
endif()
comdb2_bb_target(opencdb2api)
else()
add_library(cdb2api STATIC ${src})
add_dependencies(cdb2api proto)
configure_file(cdb2api.pc cdb2api.pc @ONLY)
install(TARGETS cdb2api ARCHIVE DESTINATION lib)
install(FILES cdb2api.h DESTINATION include)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/cdb2api.pc
DESTINATION lib/pkgconfig
)
if(NOT COMDB2_SKIP_CDB2API_SO)
add_library(cdb2api_shared SHARED ${src})
add_dependencies(cdb2api_shared proto)
set_target_properties(cdb2api_shared PROPERTIES OUTPUT_NAME cdb2api)
target_compile_definitions(cdb2api_shared PRIVATE WITH_DL_LIBS=1)
target_link_libraries(cdb2api_shared PUBLIC
${OPENSSL_LIBRARIES}
${ZLIB_LIBRARIES}
${PROTOBUF-C_LIBRARY}
${UNWIND_LIBRARY}
)
install(TARGETS cdb2api_shared LIBRARY DESTINATION lib)
endif()
endif(COMDB2_BBCMAKE)