From d02a5ff57fb49bb1048b0053835f50fe86baa6ed Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Fri, 26 Sep 2025 17:21:07 +0100 Subject: [PATCH] Improve dmg cosmetics --- cmake/platforms/macos.cmake | 11 ++++++++++ misc/macos-dmg-background.png | Bin 0 -> 6483 bytes misc/macos-dmg-setup.applescript.in | 32 ++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 misc/macos-dmg-background.png create mode 100644 misc/macos-dmg-setup.applescript.in diff --git a/cmake/platforms/macos.cmake b/cmake/platforms/macos.cmake index 0a21e5ef..833cc073 100644 --- a/cmake/platforms/macos.cmake +++ b/cmake/platforms/macos.cmake @@ -103,3 +103,14 @@ if(NOT "$ENV{APPLE_CERTIFICATE_ID}" STREQUAL "") endif() set(CPACK_GENERATOR "DragNDrop") + +set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME} Installer") +set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/misc/macos-dmg-background.png") + +configure_file( + "${CMAKE_SOURCE_DIR}/misc/macos-dmg-setup.applescript.in" + "${CMAKE_BINARY_DIR}/macos-dmg-setup.applescript" + @ONLY +) + +set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_BINARY_DIR}/macos-dmg-setup.applescript") diff --git a/misc/macos-dmg-background.png b/misc/macos-dmg-background.png new file mode 100644 index 0000000000000000000000000000000000000000..c53b2183b27c766af32f60e9f45645a6f5ab13cb GIT binary patch literal 6483 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 Ui^GH3RVeJ;z2C9a!T;QU0U9neg#Z8m literal 0 HcmV?d00001 diff --git a/misc/macos-dmg-setup.applescript.in b/misc/macos-dmg-setup.applescript.in new file mode 100644 index 00000000..e7d4f86b --- /dev/null +++ b/misc/macos-dmg-setup.applescript.in @@ -0,0 +1,32 @@ +tell application "Finder" + tell disk "@CPACK_DMG_VOLUME_NAME@" + open + set current view of container window to icon view + set toolbar visible of container window to false + set statusbar visible of container window to false + set bounds of container window to {100, 100, 600, 500} + + set viewOptions to the icon view options of container window + set arrangement of viewOptions to not arranged + set icon size of viewOptions to 96 + + try + set background picture of viewOptions to file ".background:background.png" + end try + + set position of item "@CLIENT_NAME@.app" to {100, 80} + set position of item "Applications" to {400, 80} + + set position of item "@SERVER_NAME@" to {100, 260} + set position of item "@BASEGAME@" to {250, 260} + + if exists item "missionpack" then + set position of item "missionpack" to {400, 260} + end if + + close + open + update without registering applications + delay 1 + end tell +end tell