mirror of
https://github.com/k4zmu2a/SpaceCadetPinball.git
synced 2025-09-04 07:20:15 +02:00
Build script for self-contained Mac .app (#185)
* Add CMake settings to build universal binary and find SDL in app bundle * Source frameworks from extern folder * Add build script, info plist and big sur style icon * Add example build workflow (app won't be signed) * Use macOS 11 runner for better compatibility * Use better name for the build script, move metadata to Platform/macOS/ folder * Improve macOS build instructions * Fix workflow syntax and use a more specific glob pattern too * Add libs search paths to CMakeLists.txt instead of find files * Use same /Libs folder as libs search path * Make build-mac-app.sh not fail on repeated runs * Make build-mac-app.sh executable
This commit is contained in:
parent
e2f3ae66f8
commit
6ab7b3e772
7 changed files with 133 additions and 1 deletions
60
build-mac-app.sh
Executable file
60
build-mac-app.sh
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -xe
|
||||
|
||||
mkdir -p Libs
|
||||
|
||||
cd Libs
|
||||
|
||||
sdl_version='2.28.1'
|
||||
sdl_filename="SDL2-$sdl_version.dmg"
|
||||
sdl_url="https://github.com/libsdl-org/SDL/releases/download/release-$sdl_version/$sdl_filename"
|
||||
|
||||
sdl_mixer_version='2.7.0'
|
||||
sdl_mixer_filename="SDL2_mixer-$sdl_mixer_version.dmg"
|
||||
sdl_mixer_url="https://www.libsdl.org/tmp/$sdl_mixer_filename"
|
||||
|
||||
mount_point="$(mktemp -d)"
|
||||
|
||||
if [ ! -f "$sdl_filename" ]; then
|
||||
curl -sSf -L -O "$sdl_url"
|
||||
fi
|
||||
|
||||
echo "2f936225c10a402cab07055e6f75de76f991945c37feb0cf6af633a96d2fb28c $sdl_filename" | shasum -a 256 -c
|
||||
hdiutil attach "$sdl_filename" -mountpoint "$mount_point" -quiet
|
||||
cp -a "$mount_point/SDL2.framework" .
|
||||
hdiutil detach "$mount_point"
|
||||
|
||||
if [ ! -f "$sdl_mixer_filename" ]; then
|
||||
curl -sSf -L -O "$sdl_mixer_url"
|
||||
fi
|
||||
|
||||
echo "f394c714c8aefdcae0ff9d6eefeb5d42f28e56ed09fcaebb796cb672ca11279d $sdl_mixer_filename" | shasum -a 256 -c
|
||||
hdiutil attach "$sdl_mixer_filename" -mountpoint "$mount_point" -quiet
|
||||
cp -a "$mount_point/SDL2_mixer.framework" .
|
||||
hdiutil detach "$mount_point"
|
||||
|
||||
cd ..
|
||||
|
||||
cmake .
|
||||
cmake --build .
|
||||
|
||||
sw_version='2.0.1'
|
||||
|
||||
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/
|
||||
|
||||
sed -i '' "s/CHANGEME_SW_VERSION/$sw_version/" SpaceCadetPinball.app/Contents/Info.plist
|
||||
|
||||
echo -n "APPL????" > SpaceCadetPinball.app/Contents/PkgInfo
|
||||
|
||||
hdiutil create -fs HFS+ -srcfolder SpaceCadetPinball.app -volname "SpaceCadetPinball $sw_version" "SpaceCadetPinball-$sw_version-mac.dmg"
|
||||
|
||||
rm -r SpaceCadetPinball.app
|
Loading…
Add table
Add a link
Reference in a new issue