Add comprehensive build script and fix quality issues

- Add build-all.sh for complete build process
- Add icons.ico for Windows (needs rcedit for embedding)
- Add tickstales.desktop for Linux menu integration
- Configure packr to use icons.icns for macOS
- Copy icons and version metadata in build script
- Linux build now includes .desktop file and icon
This commit is contained in:
2026-03-22 13:11:31 -07:00
parent 47386ce4e6
commit 03d70388d5
7 changed files with 68 additions and 0 deletions

53
desktop/build-all.sh Executable file
View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

BIN
desktop/icons.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -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