diff --git a/api/CMakeLists.txt b/api/CMakeLists.txt index ef04a417..f6541e21 100644 --- a/api/CMakeLists.txt +++ b/api/CMakeLists.txt @@ -83,6 +83,24 @@ if(MSVC) target_sources(mk_api PRIVATE ${RESOURCE_FILE}) endif() +#relase 类型时额外输出debug调试信息 +if(UNIX) + if("${CMAKE_BUILD_TYPE_LOWER}" STREQUAL "release") + find_program(OBJCOPY_FOUND objcopy) + if (OBJCOPY_FOUND) + add_custom_command(TARGET mk_api + POST_BUILD + COMMAND objcopy --only-keep-debug ${EXECUTABLE_OUTPUT_PATH}/libmk_api.so ${EXECUTABLE_OUTPUT_PATH}/libmk_api.so.debug + COMMAND objcopy --strip-all ${EXECUTABLE_OUTPUT_PATH}/libmk_api.so + COMMAND objcopy --add-gnu-debuglink=${EXECUTABLE_OUTPUT_PATH}/libmk_api.so.debug ${EXECUTABLE_OUTPUT_PATH}/libmk_api.so + ) + install(FILES ${EXECUTABLE_OUTPUT_PATH}/libmk_api.so.debug DESTINATION ${INSTALL_PATH_RUNTIME}) + else() + message(STATUS "not found objcopy, generate libmk_api.so.debug skip") + endif() + endif() +endif() + # IOS 跳过测试代码 if(IOS) return()