diff --git a/desktop/build-all.sh b/desktop/build-all.sh new file mode 100755 index 00000000..a6dfecbc --- /dev/null +++ b/desktop/build-all.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +cd "$SCRIPT_DIR" + +VERSION="2.0.$(cat last-release)" +echo "=== Building Tick's Tales v${VERSION} ===" +echo "" + +echo "=== Cleaning ===" +rm -rf target/windows target/linux target/osx target/osx-arm64 2>/dev/null || true + +echo "=== Building uberjar ===" +LEIN_SNAPSHOTS_IN_RELEASE=true lein with-profile steam do clean, compile, uberjar 2>&1 | tail -5 + +echo "" +echo "=== Building Windows x64 ===" +java -jar packr.jar build-windows.json +# Note: Windows icon embedding requires rcedit on Windows or wine +# The icon folder will be present for manual setup + +echo "" +echo "=== Building Linux x64 ===" +java -jar packr.jar build-linux-64.json +cp tickstales.desktop target/linux/amd64/ +mkdir -p target/linux/amd64/icons +cp resources/icon/icon_128x128.png target/linux/amd64/icons/tickstales.png + +echo "" +echo "=== Building macOS x64 ===" +java -jar packr.jar build-osx.json +cp icons.icns "target/osx/Tick's Tales.app/Contents/Resources/" +sed -i "s/1.0/${VERSION}/" "target/osx/Tick's Tales.app/Contents/Info.plist" + +echo "" +echo "=== Building macOS ARM64 ===" +java -jar packr.jar build-osx-arm64.json +cp icons.icns "target/osx-arm64/Tick's Tales.app/Contents/Resources/" +sed -i "s/1.0/${VERSION}/" "target/osx-arm64/Tick's Tales.app/Contents/Info.plist" + +echo "" +echo "=== Build Complete ===" +echo "" +echo "Sizes:" +du -sh target/windows target/linux/amd64 "target/osx/Tick's Tales.app" "target/osx-arm64/Tick's Tales.app" +echo "" +echo "Artifacts:" +echo " Windows: target/windows/TicksTales.exe" +echo " Linux: target/linux/amd64/Tick's Tales" +echo " macOS: target/osx/Tick's Tales.app" +echo " macOS ARM: target/osx-arm64/Tick's Tales.app" diff --git a/desktop/build-osx-arm64-steam.json b/desktop/build-osx-arm64-steam.json index 28db1d60..3311d129 100644 --- a/desktop/build-osx-arm64-steam.json +++ b/desktop/build-osx-arm64-steam.json @@ -6,6 +6,7 @@ "classpath": ["target/advent-standalone.jar"], "mainclass": "advent.core.desktop_launcher", "resources": ["resources/icon", "steam_appid.txt"], + "icon": "icons.icns", "output": "target/osx-arm64/Tick's Tales.app", "bundle": "com.tickstales.upallknight", "verbose": true diff --git a/desktop/build-osx-arm64.json b/desktop/build-osx-arm64.json index 4caebf7e..e74a5373 100644 --- a/desktop/build-osx-arm64.json +++ b/desktop/build-osx-arm64.json @@ -6,6 +6,7 @@ "classpath": ["target/advent-standalone.jar"], "mainclass": "advent.core.desktop_launcher", "resources": ["resources/icon", "steam_appid.txt"], + "icon": "icons.icns", "output": "target/osx-arm64/Tick's Tales.app", "bundle": "com.tickstales.upallknight", "verbose": true diff --git a/desktop/build-osx-steam.json b/desktop/build-osx-steam.json index 1661910d..187ebf15 100644 --- a/desktop/build-osx-steam.json +++ b/desktop/build-osx-steam.json @@ -6,6 +6,7 @@ "classpath": ["target/advent-standalone.jar"], "mainclass": "advent.core.desktop_launcher", "resources": ["resources/icon", "steam_appid.txt"], + "icon": "icons.icns", "output": "target/osx/Tick's Tales.app", "bundle": "com.tickstales.upallknight", "verbose": true diff --git a/desktop/build-osx.json b/desktop/build-osx.json index c68e0013..637baf59 100644 --- a/desktop/build-osx.json +++ b/desktop/build-osx.json @@ -6,6 +6,7 @@ "classpath": ["target/advent-standalone.jar"], "mainclass": "advent.core.desktop_launcher", "resources": ["resources/icon", "steam_appid.txt"], + "icon": "icons.icns", "output": "target/osx/Tick's Tales.app", "bundle": "com.tickstales.upallknight", "verbose": true diff --git a/desktop/icons.ico b/desktop/icons.ico new file mode 100644 index 00000000..2a6bcc46 Binary files /dev/null and b/desktop/icons.ico differ diff --git a/desktop/tickstales.desktop b/desktop/tickstales.desktop new file mode 100644 index 00000000..7b1c8b9a --- /dev/null +++ b/desktop/tickstales.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Tick's Tales +GenericName=Adventure Game +Comment=Tick's Tales: Up All Knight +Exec="Tick's Tales" +Icon=tickstales +Terminal=false +Categories=Game;AdventureGame; +StartupNotify=true