Use create-dmg script to automate building of macOS image.
authorChris Hanson <org/chris-hanson/cph>
Sat, 27 Oct 2018 23:49:09 +0000 (16:49 -0700)
committerChris Hanson <org/chris-hanson/cph>
Sat, 27 Oct 2018 23:49:09 +0000 (16:49 -0700)
dist/make-macosx-app
dist/shared.sh

index fba4d5dba18acab4b3aa5d1f46b817f405189527..dad39e2d63778901c1d480ee979f2e4f51763a91 100755 (executable)
@@ -47,6 +47,8 @@ shift 2
 
 OUT=${MACOSX_OUT}-${ARCH}
 ARCH_BASE=${DIST_DIR}-${ARCH}
+DMG_DIR=macos-app
+DMG_FILE=${ARCH_BASE}.dmg
 
 compile ()
 {
@@ -54,6 +56,16 @@ compile ()
     my_make compile-microcode
 }
 
+make_dmg ()
+{
+    new_temp_dir "${DMG_DIR}"
+    local APP_DIR="MIT:GNU Scheme ${RELEASE}.app"
+    my_mv "${DIST_DIR}"/src/mit-scheme.app "${DMG_DIR}"/"${APP_DIR}"
+    my_ln_s /Applications "${DMG_DIR}"/.
+    my_rm_f "${DMG_FILE}"
+    create-dmg --volname "MIT-GNU Scheme ${RELEASE}" "${DMG_FILE}" "${DMG_DIR}"
+}
+
 notify "Compiling executable"
 unpack_dist_file_to "${ARCH_BASE}" "${DIST_DIR}"
 run_command "${OUT}"-compile "${DIST_DIR}"/src compile "${@}"
@@ -61,5 +73,8 @@ run_command "${OUT}"-compile "${DIST_DIR}"/src compile "${@}"
 notify "Building application bundle"
 VERSION_STRING=${RELEASE} \
     run_command "${OUT}"-buildapp "${DIST_DIR}"/src etc/macosx/make-app.sh
-my_rm_rf "${ARCH_BASE}".app
-my_mv "${DIST_DIR}"/src/mit-scheme.app "${ARCH_BASE}".app
+
+notify "Building disk image"
+run_command "${OUT}"-makedmg "${TL_DIR}" make_dmg
+
+notify_finished
index e755b8601e092f77e3599a067b9f3f5738f34251..25140d490cac33c6692119d0f38f1e1cc1d04c39 100644 (file)
@@ -155,6 +155,11 @@ my_rm_rf ()
     cmd rm -rf "${@}"
 }
 
+my_ln_s ()
+{
+    cmd ln -s "${@}"
+}
+
 my_rmdir ()
 {
     cmd rmdir "${@}"