mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-03-16 19:10:54 +08:00
feat: generating debug files during linux release builds (#4308)
linux release构建时生成与MediaServer 匹配的debug文件。 生产环境依然使用小尺寸的MediaServer,在需要gdb调试或者查看coredump文件时可以结合debug文件查看调用栈。
This commit is contained in:
@@ -198,7 +198,12 @@ if(UNIX)
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||
set(COMPILE_OPTIONS_DEFAULT ${COMPILE_OPTIONS_DEFAULT} "-g3")
|
||||
else()
|
||||
set(COMPILE_OPTIONS_DEFAULT ${COMPILE_OPTIONS_DEFAULT} "-g0")
|
||||
find_program(OBJCOPY_FOUND objcopy)
|
||||
if (OBJCOPY_FOUND)
|
||||
set(COMPILE_OPTIONS_DEFAULT ${COMPILE_OPTIONS_DEFAULT} "-g3")
|
||||
else()
|
||||
set(COMPILE_OPTIONS_DEFAULT ${COMPILE_OPTIONS_DEFAULT} "-g0")
|
||||
endif()
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
if (MSVC)
|
||||
|
||||
@@ -66,3 +66,23 @@ else()
|
||||
endif()
|
||||
|
||||
install(TARGETS MediaServer DESTINATION ${INSTALL_PATH_RUNTIME})
|
||||
|
||||
#relase 类型时额外输出debug调试信息
|
||||
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
|
||||
if(UNIX)
|
||||
if("${CMAKE_BUILD_TYPE_LOWER}" STREQUAL "release")
|
||||
find_program(OBJCOPY_FOUND objcopy)
|
||||
if (OBJCOPY_FOUND)
|
||||
add_custom_command(TARGET MediaServer
|
||||
POST_BUILD
|
||||
COMMAND objcopy --only-keep-debug ${EXECUTABLE_OUTPUT_PATH}/MediaServer ${EXECUTABLE_OUTPUT_PATH}/MediaServer.debug
|
||||
COMMAND objcopy --strip-all ${EXECUTABLE_OUTPUT_PATH}/MediaServer
|
||||
COMMAND objcopy --add-gnu-debuglink=${EXECUTABLE_OUTPUT_PATH}/MediaServer.debug ${EXECUTABLE_OUTPUT_PATH}/MediaServer
|
||||
)
|
||||
install(FILES ${EXECUTABLE_OUTPUT_PATH}/MediaServer.debug DESTINATION ${INSTALL_PATH_RUNTIME})
|
||||
else()
|
||||
message(STATUS "not found objcopy, generate MediaServer.debug skip")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user