From 20dfbbbe55448618137f026b92acceb3d418af4f Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 7 Jan 2025 02:24:59 -0800 Subject: [PATCH] CMake: Strip mgba-headless, fix up packaging a bit --- CMakeLists.txt | 11 ++++++++++- src/platform/cmake/DebugStrip.cmake | 12 ++++++++++++ src/platform/qt/CMakeLists.txt | 12 +----------- src/platform/sdl/CMakeLists.txt | 9 +-------- 4 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 src/platform/cmake/DebugStrip.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f4737fdd..f71f46bf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,6 +158,7 @@ endif() include(FindFeature) include(FindFunction) +include(DebugStrip) # Version information add_custom_target(${BINARY_NAME}-version-info ALL @@ -1040,6 +1041,7 @@ endif() if(BUILD_HEADLESS) add_executable(${BINARY_NAME}-headless ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/headless-main.c) target_link_libraries(${BINARY_NAME}-headless ${BINARY_NAME}) + debug_strip(${BINARY_NAME}-headless) target_compile_definitions(${BINARY_NAME}-headless PRIVATE "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES}") install(TARGETS ${BINARY_NAME}-headless DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-headless) endif() @@ -1220,7 +1222,6 @@ elseif(BUILD_STATIC) cpack_add_component(lib${BINARY_NAME} GROUP dev) endif() cpack_add_component(${BINARY_NAME}-dev GROUP dev) -cpack_add_component(${BINARY_NAME}-headless GROUP dev) if(3DS) cpack_add_component(${BINARY_NAME}-3ds GROUP base) @@ -1242,6 +1243,11 @@ if(SDL_FOUND) cpack_add_component(${BINARY_NAME}-sdl GROUP sdl) endif() +if(BUILD_HEADLESS) + cpack_add_component_group(headless PARENT_GROUP base) + cpack_add_component(${BINARY_NAME}-headless GROUP headless) +endif() + if(DISTBUILD) cpack_add_component_group(debug PARENT_GROUP dev) if(BUILD_SHARED AND NOT IS_EMBEDDED) @@ -1256,6 +1262,9 @@ if(DISTBUILD) if(SDL_FOUND) cpack_add_component(${BINARY_NAME}-sdl-dbg GROUP debug) endif() + if(BUILD_HEADLESS) + cpack_add_component(${BINARY_NAME}-headless-dbg GROUP debug) + endif() if(WIN32) cpack_add_component_group(installer PARENT_GROUP base) endif() diff --git a/src/platform/cmake/DebugStrip.cmake b/src/platform/cmake/DebugStrip.cmake new file mode 100644 index 000000000..7e2b842a4 --- /dev/null +++ b/src/platform/cmake/DebugStrip.cmake @@ -0,0 +1,12 @@ +function(debug_strip TARGET) + if(DISTBUILD AND NOT APPLE) + if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${OBJCOPY}" --only-keep-debug "$" "$.debug") + add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${STRIP}" "$") + add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$.debug" "$") + install(FILES "$.debug" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${TARGET}-dbg) + elseif(BUILD_STATIC AND (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")) + add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${STRIP}" "$") + endif() + endif() +endfunction() diff --git a/src/platform/qt/CMakeLists.txt b/src/platform/qt/CMakeLists.txt index a5fe5b8a8..3122c70e0 100644 --- a/src/platform/qt/CMakeLists.txt +++ b/src/platform/qt/CMakeLists.txt @@ -536,17 +536,7 @@ elseif(WIN32) endif() endif() -if(DISTBUILD AND NOT APPLE) - if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${OBJCOPY}" --only-keep-debug "$" "$.debug") - add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${STRIP}" "$") - add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$.debug" "$") - install(FILES "$.debug" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-qt-dbg) - elseif(BUILD_STATIC AND (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")) - add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${STRIP}" "$") - endif() -endif() - +debug_strip(${BINARY_NAME}-qt) install(TARGETS ${BINARY_NAME}-qt RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-qt BUNDLE DESTINATION ${APPDIR} COMPONENT ${BINARY_NAME}-qt) diff --git a/src/platform/sdl/CMakeLists.txt b/src/platform/sdl/CMakeLists.txt index 5246f959b..2399dc599 100644 --- a/src/platform/sdl/CMakeLists.txt +++ b/src/platform/sdl/CMakeLists.txt @@ -115,11 +115,4 @@ if(UNIX) install(FILES ${PROJECT_SOURCE_DIR}/doc/mgba.6 DESTINATION ${MANDIR}/man6 COMPONENT ${BINARY_NAME}-sdl) endif() -if(DISTBUILD AND CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - if(NOT APPLE) - add_custom_command(TARGET ${BINARY_NAME}-sdl POST_BUILD COMMAND "${OBJCOPY}" --only-keep-debug "$" "$.debug") - add_custom_command(TARGET ${BINARY_NAME}-sdl POST_BUILD COMMAND "${STRIP}" "$") - add_custom_command(TARGET ${BINARY_NAME}-sdl POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$.debug" "$") - install(FILES "$.debug" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-sdl-dbg) - endif() -endif() +debug_strip(${BINARY_NAME}-sdl)