summaryrefslogtreecommitdiff
path: root/infra/CMakeLists.txt
blob: be0f97bc755ed15463d432d7b0a4fa3b5da28fc5 (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
set(INFRA exdata mq tuple packet_manager packet_io ip_reassembly tcp_reassembly session_manager module_manager)
set(DEPS bitmap dablooms interval_tree logger nmx_pool rbtree timeout toml)
set(DECODERS appid lpi_plus)
set(WHOLE_ARCHIVE ${DEPS} ${INFRA} ${DECODERS})
set(LIBS fieldstat4)

foreach(infra ${INFRA})
    add_subdirectory(${infra})
endforeach()

add_library(stellar_lib SHARED stellar_core.c stellar_stat.c)
add_dependencies(stellar_lib ${WHOLE_ARCHIVE})

set_target_properties(stellar_lib PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/version.map")
target_link_libraries(stellar_lib PRIVATE pthread -Wl,--whole-archive ${WHOLE_ARCHIVE} -Wl,--no-whole-archive)

target_link_libraries(stellar_lib PUBLIC ${LIBS})
target_link_options(stellar_lib PRIVATE -rdynamic)
set_target_properties(stellar_lib PROPERTIES OUTPUT_NAME "stellar")

add_executable(stellar main.c stellar_core.c stellar_stat.c)
add_dependencies(stellar_lib ${WHOLE_ARCHIVE})

set_target_properties(stellar PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/version.map")
target_link_libraries(stellar PRIVATE pthread -Wl,--whole-archive ${WHOLE_ARCHIVE} -Wl,--no-whole-archive ${LIBS})
target_link_options(stellar PRIVATE -rdynamic)

install(TARGETS stellar_lib LIBRARY DESTINATION lib COMPONENT LIBRARIES)
install(TARGETS stellar RUNTIME DESTINATION bin COMPONENT PROGRAM)