11#! /bin/bash
22
3+ ID=" tdsm"
34NAME=" Top Down Sprite Maker"
5+ DEV=" Jordan Bunke"
6+ MAC_BUNDLE_ID=" com.jordanbunke.tdsm"
47
58echo " Building $NAME for macOS..."
69
710ARTIFACT_DIR=" ../out/artifacts/release"
811OUTPUT_DIR=" ../out/artifacts/dist/mac"
912
13+ rm -rf " $OUTPUT_DIR /build"
14+ rm -rf " $OUTPUT_DIR /runtime"
1015mkdir -p " $OUTPUT_DIR "
1116
1217# Analyze Java module dependencies
1318jdeps --multi-release 17 --print-module-deps " $ARTIFACT_DIR /tdsm.jar" > " $OUTPUT_DIR /modules.txt"
14- echo " 1/3 : Analyzed dependencies"
19+ echo " 1/4 : Analyzed dependencies"
1520
1621MODULES=$( cat " $OUTPUT_DIR /modules.txt" )
1722echo " Modules: $MODULES "
1823
1924# Create custom runtime image with jlink
2025jlink --module-path " $JAVA_HOME /jmods" --add-modules " $MODULES " --output " $OUTPUT_DIR /runtime"
21- echo " 2/3 : Generated runtime image"
26+ echo " 2/4 : Generated runtime image"
2227
2328# Package application with jpackage for macOS
24- ICON_PATH=" ./icons/sources/icon-256px.png "
29+ ICON_PATH=" ./icons/mac-icon.icns "
2530VERSION_FILE=" ../res/version"
2631
2732VERSION=$( cat " $VERSION_FILE " )
@@ -30,17 +35,38 @@ echo "Version: $VERSION"
3035jpackage \
3136 --type dmg \
3237 --input " $ARTIFACT_DIR " \
33- --dest " $OUTPUT_DIR /build " \
38+ --dest " $OUTPUT_DIR /installer " \
3439 --name " $NAME " \
3540 --app-version " $VERSION " \
3641 --main-jar tdsm.jar \
3742 --runtime-image " $OUTPUT_DIR /runtime" \
3843 --icon " $ICON_PATH " \
39- --mac-package-identifier " tdsm" \
44+ --vendor " $DEV " \
45+ --mac-package-identifier " $MAC_BUNDLE_ID " \
46+ --description " $NAME "
47+ mv " $OUTPUT_DIR /installer/${NAME} -${VERSION} .dmg" \
48+ " $OUTPUT_DIR /installer/${ID} -${VERSION} -installer.dmg"
49+
50+ if [[ $? -eq 0 ]]; then
51+ echo " 3/4: Built macOS installer with jpackage"
52+ else
53+ echo " Failed to build macOS installer"
54+ fi
55+
56+ jpackage \
57+ --type app-image \
58+ --input " $ARTIFACT_DIR " \
59+ --dest " $OUTPUT_DIR /build" \
60+ --name " $ID " \
61+ --app-version " $VERSION " \
62+ --main-jar tdsm.jar \
63+ --runtime-image " $OUTPUT_DIR /runtime" \
64+ --icon " $ICON_PATH " \
65+ --vendor " $DEV " \
4066 --description " $NAME "
4167
4268if [[ $? -eq 0 ]]; then
43- echo " 3/3 : Built $NAME for macOS "
69+ echo " 4/4 : Built macOS executable with jpackage "
4470else
45- echo " Failed to build $NAME for macOS"
71+ echo " Failed to build macOS executable "
4672fi
0 commit comments