CMake: Strip mgba-headless, fix up packaging a bit

This commit is contained in:
Vicki Pfau 2025-01-07 02:24:59 -08:00
parent 419435c35b
commit 20dfbbbe55
4 changed files with 24 additions and 20 deletions

View File

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

View File

@ -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 "$<TARGET_FILE:${TARGET}>" "$<TARGET_FILE:${TARGET}>.debug")
add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:${TARGET}>")
add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$<TARGET_FILE:${TARGET}>.debug" "$<TARGET_FILE:${TARGET}>")
install(FILES "$<TARGET_FILE:${TARGET}>.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}" "$<TARGET_FILE:${TARGET}>")
endif()
endif()
endfunction()

View File

@ -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 "$<TARGET_FILE:${BINARY_NAME}-qt>" "$<TARGET_FILE:${BINARY_NAME}-qt>.debug")
add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:${BINARY_NAME}-qt>")
add_custom_command(TARGET ${BINARY_NAME}-qt POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$<TARGET_FILE:${BINARY_NAME}-qt>.debug" "$<TARGET_FILE:${BINARY_NAME}-qt>")
install(FILES "$<TARGET_FILE:${BINARY_NAME}-qt>.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}" "$<TARGET_FILE:${BINARY_NAME}-qt>")
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)

View File

@ -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 "$<TARGET_FILE:${BINARY_NAME}-sdl>" "$<TARGET_FILE:${BINARY_NAME}-sdl>.debug")
add_custom_command(TARGET ${BINARY_NAME}-sdl POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:${BINARY_NAME}-sdl>")
add_custom_command(TARGET ${BINARY_NAME}-sdl POST_BUILD COMMAND "${OBJCOPY}" --add-gnu-debuglink "$<TARGET_FILE:${BINARY_NAME}-sdl>.debug" "$<TARGET_FILE:${BINARY_NAME}-sdl>")
install(FILES "$<TARGET_FILE:${BINARY_NAME}-sdl>.debug" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-sdl-dbg)
endif()
endif()
debug_strip(${BINARY_NAME}-sdl)