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:
53
desktop/build-all.sh
Executable file
53
desktop/build-all.sh
Executable 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"
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
"classpath": ["target/advent-standalone.jar"],
|
"classpath": ["target/advent-standalone.jar"],
|
||||||
"mainclass": "advent.core.desktop_launcher",
|
"mainclass": "advent.core.desktop_launcher",
|
||||||
"resources": ["resources/icon", "steam_appid.txt"],
|
"resources": ["resources/icon", "steam_appid.txt"],
|
||||||
|
"icon": "icons.icns",
|
||||||
"output": "target/osx-arm64/Tick's Tales.app",
|
"output": "target/osx-arm64/Tick's Tales.app",
|
||||||
"bundle": "com.tickstales.upallknight",
|
"bundle": "com.tickstales.upallknight",
|
||||||
"verbose": true
|
"verbose": true
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"classpath": ["target/advent-standalone.jar"],
|
"classpath": ["target/advent-standalone.jar"],
|
||||||
"mainclass": "advent.core.desktop_launcher",
|
"mainclass": "advent.core.desktop_launcher",
|
||||||
"resources": ["resources/icon", "steam_appid.txt"],
|
"resources": ["resources/icon", "steam_appid.txt"],
|
||||||
|
"icon": "icons.icns",
|
||||||
"output": "target/osx-arm64/Tick's Tales.app",
|
"output": "target/osx-arm64/Tick's Tales.app",
|
||||||
"bundle": "com.tickstales.upallknight",
|
"bundle": "com.tickstales.upallknight",
|
||||||
"verbose": true
|
"verbose": true
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"classpath": ["target/advent-standalone.jar"],
|
"classpath": ["target/advent-standalone.jar"],
|
||||||
"mainclass": "advent.core.desktop_launcher",
|
"mainclass": "advent.core.desktop_launcher",
|
||||||
"resources": ["resources/icon", "steam_appid.txt"],
|
"resources": ["resources/icon", "steam_appid.txt"],
|
||||||
|
"icon": "icons.icns",
|
||||||
"output": "target/osx/Tick's Tales.app",
|
"output": "target/osx/Tick's Tales.app",
|
||||||
"bundle": "com.tickstales.upallknight",
|
"bundle": "com.tickstales.upallknight",
|
||||||
"verbose": true
|
"verbose": true
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"classpath": ["target/advent-standalone.jar"],
|
"classpath": ["target/advent-standalone.jar"],
|
||||||
"mainclass": "advent.core.desktop_launcher",
|
"mainclass": "advent.core.desktop_launcher",
|
||||||
"resources": ["resources/icon", "steam_appid.txt"],
|
"resources": ["resources/icon", "steam_appid.txt"],
|
||||||
|
"icon": "icons.icns",
|
||||||
"output": "target/osx/Tick's Tales.app",
|
"output": "target/osx/Tick's Tales.app",
|
||||||
"bundle": "com.tickstales.upallknight",
|
"bundle": "com.tickstales.upallknight",
|
||||||
"verbose": true
|
"verbose": true
|
||||||
|
|||||||
BIN
desktop/icons.ico
Normal file
BIN
desktop/icons.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
11
desktop/tickstales.desktop
Normal file
11
desktop/tickstales.desktop
Normal 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
|
||||||
Reference in New Issue
Block a user