🔧 build(infra CMakeLists.txt): refactor link parameter

This commit is contained in:
yangwei
2024-08-29 17:20:00 +08:00
parent f4c3bece3c
commit 2a889ba4df
4 changed files with 21 additions and 17 deletions

View File

@@ -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) set(PLUGIN http lpi)
include_directories(${CMAKE_SOURCE_DIR}/infra) include_directories(${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(log) add_subdirectory(log)
add_subdirectory(tuple) add_subdirectory(tuple)
@@ -14,10 +15,19 @@ add_subdirectory(session_manager)
add_subdirectory(plugin_manager) add_subdirectory(plugin_manager)
add_subdirectory(core) add_subdirectory(core)
add_executable(stellar main.c) set(WHOLE_ARCHIVE core ${DEPS} ${MODULES} ${PLUGIN})
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")
install(TARGETS stellar RUNTIME DESTINATION bin COMPONENT PROGRAM) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stellar_devel.c "")
install(TARGETS stellar_devel LIBRARY DESTINATION lib COMPONENT LIBRARIES)
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)

View File

@@ -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})

View File

@@ -9,7 +9,7 @@ target_link_libraries(
gtest gmock 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_NAME "LPI_TEST")
set(TEST_MAIN ${CMAKE_CURRENT_BINARY_DIR}/gtest_lpi) set(TEST_MAIN ${CMAKE_CURRENT_BINARY_DIR}/gtest_lpi)