From 8e36947fd467f0530725b03f8bb0e7981ad2aa69 Mon Sep 17 00:00:00 2001 From: Helloyunho Date: Tue, 8 Jul 2025 14:27:22 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20chore:=20make=20the=20bundle=20s?= =?UTF-8?q?maller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packaging/macos/CMakeLists.txt | 41 +++++++++++++++++++--------- packaging/macos/config/Info.plist.in | 2 +- packaging/macos/isle/Info.plist.in | 2 +- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/packaging/macos/CMakeLists.txt b/packaging/macos/CMakeLists.txt index 275e4441..735683a2 100644 --- a/packaging/macos/CMakeLists.txt +++ b/packaging/macos/CMakeLists.txt @@ -1,9 +1,9 @@ set(_icon_file AppIcon) set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_ID}) 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_CONFIG_BUNDLE_NAME isle-config) +set(CONFIG_TARGET_NAME isle-config) set(MACOSX_CONFIG_BUNDLE_DISPLAY_NAME "Configure LEGO Island") set(MACOSX_BUNDLE_INFO_STRING ${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 set(MACOSX_BUNDLE_REQUIRED_PLATFORM Carbon) +set(CPACK_DMG_VOLUME_NAME "Isle Portable") + if(ISLE_BUILD_APP) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/isle/Info.plist.in" @@ -20,18 +22,23 @@ if(ISLE_BUILD_APP) @ONLY ) set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/isle/${_icon_file}.icns") - target_sources(isle PRIVATE ${RESOURCE_FILES}) - set_target_properties(isle PROPERTIES + target_sources(${ISLE_TARGET_NAME} PRIVATE ${RESOURCE_FILES}) + set_target_properties(${ISLE_TARGET_NAME} PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/isle/Info.plist" RESOURCE ${RESOURCE_FILES}) - install(TARGETS isle DESTINATION ./) + install(TARGETS ${ISLE_TARGET_NAME} DESTINATION ./) install(CODE " include(BundleUtilities) - fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_ISLE_BUNDLE_NAME}.app \"\" \"\") + fixup_bundle(${CMAKE_BINARY_DIR}/${ISLE_TARGET_NAME}.app \"\" \"\") " 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() if(ISLE_BUILD_CONFIG) configure_file( @@ -40,20 +47,20 @@ if(ISLE_BUILD_CONFIG) @ONLY ) set(RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/config/${_icon_file}.icns") - target_sources(isle-config PRIVATE ${RESOURCE_FILES}) - set_target_properties(isle-config PROPERTIES + target_sources(${CONFIG_TARGET_NAME} PRIVATE ${RESOURCE_FILES}) + set_target_properties(${CONFIG_TARGET_NAME} PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_ICON_FILE "${_icon_file}.icns" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/config/Info.plist" RESOURCE ${RESOURCE_FILES}) - install(TARGETS isle-config DESTINATION ./) + install(TARGETS ${CONFIG_TARGET_NAME} DESTINATION ./) install(CODE " include(BundleUtilities) - fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_CONFIG_BUNDLE_NAME}.app \"\" \"\") + fixup_bundle(${CMAKE_BINARY_DIR}/${CONFIG_TARGET_NAME}.app \"\" \"\") " COMPONENT Runtime) qt_generate_deploy_app_script( - TARGET isle-config + TARGET ${CONFIG_TARGET_NAME} OUTPUT_SCRIPT deploy_script NO_COMPILER_RUNTIME NO_TRANSLATIONS @@ -62,11 +69,19 @@ if(ISLE_BUILD_CONFIG) install(CODE " execute_process(COMMAND /usr/bin/install_name_tool -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 " execute_process(COMMAND /usr/bin/codesign --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() + +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() +") diff --git a/packaging/macos/config/Info.plist.in b/packaging/macos/config/Info.plist.in index d128adc0..8d64c087 100644 --- a/packaging/macos/config/Info.plist.in +++ b/packaging/macos/config/Info.plist.in @@ -17,7 +17,7 @@ CFBundleLongVersionString @MACOSX_BUNDLE_LONG_VERSION_STRING@ CFBundleName - @MACOSX_CONFIG_BUNDLE_NAME@ + @CONFIG_TARGET_NAME@ CFBundleDisplayName @MACOSX_CONFIG_BUNDLE_DISPLAY_NAME@ CFBundlePackageType diff --git a/packaging/macos/isle/Info.plist.in b/packaging/macos/isle/Info.plist.in index 9919e7f9..f9c80875 100644 --- a/packaging/macos/isle/Info.plist.in +++ b/packaging/macos/isle/Info.plist.in @@ -17,7 +17,7 @@ CFBundleLongVersionString @MACOSX_BUNDLE_LONG_VERSION_STRING@ CFBundleName - @MACOSX_ISLE_BUNDLE_NAME@ + @ISLE_TARGET_NAME@ CFBundleDisplayName @MACOSX_ISLE_BUNDLE_DISPLAY_NAME@ CFBundlePackageType