1
0
Fork 0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2025-09-03 23:20:14 +02:00
SpaceCadetPinball/build-mac-app.sh
2025-08-03 13:26:58 +02:00

80 lines
2.5 KiB
Bash
Executable file

#!/usr/bin/env bash
set -xe
# === Prepare directories ===
mkdir -p Libs
cd Libs
# === SDL2 ===
sdl_version='2.32.8'
sdl_filename="SDL2-$sdl_version.dmg"
sdl_url="https://github.com/libsdl-org/SDL/releases/download/release-$sdl_version/$sdl_filename"
if [ ! -f "$sdl_filename" ]; then
curl -sSf -L -O "$sdl_url"
fi
echo "de07f71cc85cd8909c977e105c4f2ca419abd09b981c347e003592186caf6fa0 $sdl_filename" | shasum -a 256 -c
hdiutil attach "$sdl_filename" -quiet
cp -a /Volumes/SDL2/SDL2.framework .
hdiutil detach /Volumes/SDL2
# === SDL2_mixer ===
sdl_mixer_version='2.8.1'
sdl_mixer_filename="SDL2_mixer-$sdl_mixer_version.dmg"
sdl_mixer_url="https://github.com/libsdl-org/SDL_mixer/releases/download/release-$sdl_mixer_version/$sdl_mixer_filename"
if [ ! -f "$sdl_mixer_filename" ]; then
curl -sSf -L -O "$sdl_mixer_url"
fi
echo "d74052391ee4d91836bf1072a060f1d821710f3498a54996c66b9a17c79a72d1 $sdl_mixer_filename" | shasum -a 256 -c
hdiutil attach "$sdl_mixer_filename" -quiet
cp -a /Volumes/SDL2_mixer/SDL2_mixer.framework .
hdiutil detach /Volumes/SDL2_mixer
cd ..
# === Build with CMake ===
cmake -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=bin .
cmake --build .
# === Prepare .app Bundle ===
sw_version='2.1.8'
mkdir -p SpaceCadetPinball.app/Contents/MacOS
mkdir -p SpaceCadetPinball.app/Contents/Resources
mkdir -p SpaceCadetPinball.app/Contents/Frameworks
cp -a Platform/macOS/Info.plist SpaceCadetPinball.app/Contents/
cp -a Platform/macOS/SpaceCadetPinball.icns SpaceCadetPinball.app/Contents/Resources/
cp -a Libs/SDL2.framework SpaceCadetPinball.app/Contents/Frameworks/
cp -a Libs/SDL2_mixer.framework SpaceCadetPinball.app/Contents/Frameworks/
cp -a bin/SpaceCadetPinball SpaceCadetPinball.app/Contents/MacOS/
# === Add game assets ===
curl -LO https://archive.org/download/winXP-pinball/Win32.Pinball.zip
unzip -o Win32.Pinball.zip -d PinballAssets/
# Copy contents of Pinball folder into Resources
cp -a PinballAssets/Pinball/* SpaceCadetPinball.app/Contents/Resources/
rm -rf Win32.Pinball.zip PinballAssets/
# === Finalize bundle ===
sed -i '' "s/CHANGEME_SW_VERSION/$sw_version/" SpaceCadetPinball.app/Contents/Info.plist
echo -n "APPLE" > SpaceCadetPinball.app/Contents/PkgInfo
# === Ad-hoc code signing ===
codesign --force --deep --sign - SpaceCadetPinball.app
# === Create DMG ===
hdiutil create -fs HFS+ -srcfolder SpaceCadetPinball.app \
-volname "SpaceCadetPinball $sw_version" \
"SpaceCadetPinball-$sw_version-mac.dmg"
# === Clean up ===
rm -rf SpaceCadetPinball.app