diff --git a/infra/CMakeLists.txt b/infra/CMakeLists.txt index 9547caa..cb6f4df 100644 --- a/infra/CMakeLists.txt +++ b/infra/CMakeLists.txt @@ -1,7 +1,8 @@ -set(LIBRARY session_manager plugin_manager ip_reassembly packet_io snowflake packet pthread fieldstat4 toml nmx_pool) +set(MODULES log tuple packet packet_io snowflake ip_reassembly tcp_reassembly session_manager plugin_manager) +set(DEPS bitmap dablooms interval_tree nmx_pool rbtree timeout toml) set(PLUGIN http lpi) -include_directories(${CMAKE_SOURCE_DIR}/infra) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory(log) add_subdirectory(tuple) @@ -14,10 +15,19 @@ add_subdirectory(session_manager) add_subdirectory(plugin_manager) add_subdirectory(core) -add_executable(stellar main.c) -target_link_libraries(stellar PRIVATE -Wl,--whole-archive core ${LIBRARY} ${PLUGIN} -Wl,--no-whole-archive) -target_link_libraries(stellar PRIVATE "-rdynamic") -set_target_properties(stellar PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/core/version.map") +set(WHOLE_ARCHIVE core ${DEPS} ${MODULES} ${PLUGIN}) -install(TARGETS stellar RUNTIME DESTINATION bin COMPONENT PROGRAM) -install(TARGETS stellar_devel LIBRARY DESTINATION lib COMPONENT LIBRARIES) \ No newline at end of file +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stellar_devel.c "") + +add_library(stellar_devel SHARED stellar_devel.c) +set_target_properties(stellar_devel PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/version.map") +target_link_libraries(stellar_devel PRIVATE pthread -Wl,--whole-archive ${WHOLE_ARCHIVE} -Wl,--no-whole-archive) +target_link_options(stellar_devel PRIVATE -rdynamic) + +add_executable(stellar main.c) +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) +target_link_options(stellar PRIVATE -rdynamic) + +install(TARGETS stellar_devel LIBRARY DESTINATION lib COMPONENT LIBRARIES) +install(TARGETS stellar RUNTIME DESTINATION bin COMPONENT PROGRAM) \ No newline at end of file diff --git a/infra/core/CMakeLists.txt b/infra/core/CMakeLists.txt index 0867688..18ed5dd 100644 --- a/infra/core/CMakeLists.txt +++ b/infra/core/CMakeLists.txt @@ -1,9 +1,3 @@ -set(SOURCE stellar_config.c stellar_stat.c stellar_core.c) - -add_library(core STATIC ${SOURCE}) -target_link_libraries(core PUBLIC ${LIBRARY}) - -add_library(stellar_devel SHARED ${SOURCE}) -set_target_properties(stellar_devel PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/version.map") -target_link_libraries(stellar_devel PRIVATE -Wl,--whole-archive ${LIBRARY} -Wl,--no-whole-archive) +add_library(core stellar_config.c stellar_stat.c stellar_core.c) +target_link_libraries(core PUBLIC ${MODULES}) diff --git a/infra/core/version.map b/infra/version.map similarity index 100% rename from infra/core/version.map rename to infra/version.map diff --git a/test/lpi_plugin/CMakeLists.txt b/test/lpi_plugin/CMakeLists.txt index 96f61d8..daa3f72 100644 --- a/test/lpi_plugin/CMakeLists.txt +++ b/test/lpi_plugin/CMakeLists.txt @@ -9,7 +9,7 @@ target_link_libraries( gtest gmock ) -target_link_libraries(gtest_lpi PRIVATE -Wl,--whole-archive lpi -Wl,--no-whole-archive) +#target_link_libraries(gtest_lpi PRIVATE -Wl,--whole-archive lpi -Wl,--no-whole-archive) set(TEST_NAME "LPI_TEST") set(TEST_MAIN ${CMAKE_CURRENT_BINARY_DIR}/gtest_lpi)