mirror of
https://github.com/k4zmu2a/SpaceCadetPinball.git
synced 2025-09-03 23:20:14 +02:00
80 lines
2.5 KiB
Bash
Executable file
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
|