🔨 chore: make the bundle smaller

This commit is contained in:
Helloyunho 2025-07-08 14:27:22 +09:00
parent 5c6711513e
commit 8e36947fd4
No known key found for this signature in database
GPG Key ID: 6AFA210B0150BE47
3 changed files with 30 additions and 15 deletions

View File

@ -1,9 +1,9 @@
set(_icon_file AppIcon) set(_icon_file AppIcon)
set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_ID}) set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_ID})
set(MACOSX_BUNDLE_COPYRIGHT ${APP_SPDX}) set(MACOSX_BUNDLE_COPYRIGHT ${APP_SPDX})
set(MACOSX_ISLE_BUNDLE_NAME isle) set(ISLE_TARGET_NAME isle)
set(MACOSX_ISLE_BUNDLE_DISPLAY_NAME ${APP_NAME}) set(MACOSX_ISLE_BUNDLE_DISPLAY_NAME ${APP_NAME})
set(MACOSX_CONFIG_BUNDLE_NAME isle-config) set(CONFIG_TARGET_NAME isle-config)
set(MACOSX_CONFIG_BUNDLE_DISPLAY_NAME "Configure LEGO Island") set(MACOSX_CONFIG_BUNDLE_DISPLAY_NAME "Configure LEGO Island")
set(MACOSX_BUNDLE_INFO_STRING ${PROJECT_VERSION}) set(MACOSX_BUNDLE_INFO_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
@ -13,6 +13,8 @@ set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION}")
# TODO: darwin < 9 # TODO: darwin < 9
set(MACOSX_BUNDLE_REQUIRED_PLATFORM Carbon) set(MACOSX_BUNDLE_REQUIRED_PLATFORM Carbon)
set(CPACK_DMG_VOLUME_NAME "Isle Portable")
if(ISLE_BUILD_APP) if(ISLE_BUILD_APP)
configure_file( configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/isle/Info.plist.in" "${CMAKE_CURRENT_SOURCE_DIR}/isle/Info.plist.in"
@ -20,18 +22,23 @@ if(ISLE_BUILD_APP)
@ONLY @ONLY
) )
set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/isle/${_icon_file}.icns") set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/isle/${_icon_file}.icns")
target_sources(isle PRIVATE ${RESOURCE_FILES}) target_sources(${ISLE_TARGET_NAME} PRIVATE ${RESOURCE_FILES})
set_target_properties(isle PROPERTIES set_target_properties(${ISLE_TARGET_NAME} PROPERTIES
MACOSX_BUNDLE TRUE MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/isle/Info.plist" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/isle/Info.plist"
RESOURCE ${RESOURCE_FILES}) RESOURCE ${RESOURCE_FILES})
install(TARGETS isle DESTINATION ./) install(TARGETS ${ISLE_TARGET_NAME} DESTINATION ./)
install(CODE " install(CODE "
include(BundleUtilities) include(BundleUtilities)
fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_ISLE_BUNDLE_NAME}.app \"\" \"\") fixup_bundle(${CMAKE_BINARY_DIR}/${ISLE_TARGET_NAME}.app \"\" \"\")
" "
COMPONENT Runtime) COMPONENT Runtime)
install(CODE "
execute_process(COMMAND /usr/bin/codesign
--force --deep --sign - --timestamp
\"\$\{CMAKE_INSTALL_PREFIX\}/${ISLE_TARGET_NAME}.app/Contents/MacOS/${ISLE_TARGET_NAME}\")
")
endif() endif()
if(ISLE_BUILD_CONFIG) if(ISLE_BUILD_CONFIG)
configure_file( configure_file(
@ -40,20 +47,20 @@ if(ISLE_BUILD_CONFIG)
@ONLY @ONLY
) )
set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/config/${_icon_file}.icns") set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/config/${_icon_file}.icns")
target_sources(isle-config PRIVATE ${RESOURCE_FILES}) target_sources(${CONFIG_TARGET_NAME} PRIVATE ${RESOURCE_FILES})
set_target_properties(isle-config PROPERTIES set_target_properties(${CONFIG_TARGET_NAME} PROPERTIES
MACOSX_BUNDLE TRUE MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/config/Info.plist" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/config/Info.plist"
RESOURCE ${RESOURCE_FILES}) RESOURCE ${RESOURCE_FILES})
install(TARGETS isle-config DESTINATION ./) install(TARGETS ${CONFIG_TARGET_NAME} DESTINATION ./)
install(CODE " install(CODE "
include(BundleUtilities) include(BundleUtilities)
fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_CONFIG_BUNDLE_NAME}.app \"\" \"\") fixup_bundle(${CMAKE_BINARY_DIR}/${CONFIG_TARGET_NAME}.app \"\" \"\")
" "
COMPONENT Runtime) COMPONENT Runtime)
qt_generate_deploy_app_script( qt_generate_deploy_app_script(
TARGET isle-config TARGET ${CONFIG_TARGET_NAME}
OUTPUT_SCRIPT deploy_script OUTPUT_SCRIPT deploy_script
NO_COMPILER_RUNTIME NO_COMPILER_RUNTIME
NO_TRANSLATIONS NO_TRANSLATIONS
@ -62,11 +69,19 @@ if(ISLE_BUILD_CONFIG)
install(CODE " install(CODE "
execute_process(COMMAND /usr/bin/install_name_tool execute_process(COMMAND /usr/bin/install_name_tool
-add_rpath \"@executable_path/../Frameworks\" -add_rpath \"@executable_path/../Frameworks\"
\"\$\{CMAKE_INSTALL_PREFIX\}/isle-config.app/Contents/MacOS/isle-config\") \"\$\{CMAKE_INSTALL_PREFIX\}/${CONFIG_TARGET_NAME}.app/Contents/MacOS/${CONFIG_TARGET_NAME}\")
") ")
install(CODE " install(CODE "
execute_process(COMMAND /usr/bin/codesign execute_process(COMMAND /usr/bin/codesign
--force --deep --sign - --timestamp --force --deep --sign - --timestamp
\"\$\{CMAKE_INSTALL_PREFIX\}/isle-config.app/Contents/MacOS/isle-config\") \"\$\{CMAKE_INSTALL_PREFIX\}/${CONFIG_TARGET_NAME}.app/Contents/MacOS/${CONFIG_TARGET_NAME}\")
") ")
endif() endif()
install(CODE "
if(IS_DIRECTORY \"\$\{CMAKE_INSTALL_PREFIX\}/bin\" OR IS_DIRECTORY \"\$\{CMAKE_INSTALL_PREFIX\}/lib\" OR EXISTS \"\$\{CMAKE_INSTALL_PREFIX\}/AppIcon.icns\")
execute_process(COMMAND /bin/rm
-rf \"\$\{CMAKE_INSTALL_PREFIX\}/bin\" \"\$\{CMAKE_INSTALL_PREFIX\}/lib\" \"\$\{CMAKE_INSTALL_PREFIX\}/AppIcon.icns\"
)
endif()
")

View File

@ -17,7 +17,7 @@
<key>CFBundleLongVersionString</key> <key>CFBundleLongVersionString</key>
<string>@MACOSX_BUNDLE_LONG_VERSION_STRING@</string> <string>@MACOSX_BUNDLE_LONG_VERSION_STRING@</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>@MACOSX_CONFIG_BUNDLE_NAME@</string> <string>@CONFIG_TARGET_NAME@</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>@MACOSX_CONFIG_BUNDLE_DISPLAY_NAME@</string> <string>@MACOSX_CONFIG_BUNDLE_DISPLAY_NAME@</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>

View File

@ -17,7 +17,7 @@
<key>CFBundleLongVersionString</key> <key>CFBundleLongVersionString</key>
<string>@MACOSX_BUNDLE_LONG_VERSION_STRING@</string> <string>@MACOSX_BUNDLE_LONG_VERSION_STRING@</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>@MACOSX_ISLE_BUNDLE_NAME@</string> <string>@ISLE_TARGET_NAME@</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>@MACOSX_ISLE_BUNDLE_DISPLAY_NAME@</string> <string>@MACOSX_ISLE_BUNDLE_DISPLAY_NAME@</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>