Skip to content

Commit

Permalink
add option ENABLE_SEPARATE_SYMBOLS
Browse files Browse the repository at this point in the history
  • Loading branch information
liuneng1994 committed Nov 28, 2024
1 parent f633870 commit f3302d3
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions cpp-ch/local-engine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,26 @@ else()
set(LOCALENGINE_SHARED_LIB_NAME "libch.so")
endif()

option(ENABLE_SEPARATE_SYMBOLS "support separate debug symbols from so" OFF)
if(ENABLE_SEPARATE_SYMBOLS)
set(SYMBOL_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/debug_symbols)
file(MAKE_DIRECTORY ${SYMBOL_OUTPUT_DIRECTORY})
function(separate_symbols target)
add_custom_command(
TARGET ${target}
POST_BUILD
COMMAND ${CMAKE_OBJCOPY} --only-keep-debug $<TARGET_FILE:${target}>
${SYMBOL_OUTPUT_DIRECTORY}/$<TARGET_FILE_NAME:${target}>.debug
COMMAND ${CMAKE_OBJCOPY} --strip-debug $<TARGET_FILE:${target}>
COMMAND
${CMAKE_OBJCOPY}
--add-gnu-debuglink=${SYMBOL_OUTPUT_DIRECTORY}/$<TARGET_FILE_NAME:${target}>.debug
$<TARGET_FILE:${target}>
COMMENT "Separating debug symbols for target: ${target}")
endfunction()
separate_symbols(${LOCALENGINE_SHARED_LIB})
endif()

add_custom_command(
OUTPUT ${LOCALENGINE_SHARED_LIB_NAME}
COMMAND ${CMAKE_COMMAND} -E rename $<TARGET_FILE:${LOCALENGINE_SHARED_LIB}>
Expand Down

0 comments on commit f3302d3

Please sign in to comment.