File: create-macos-universal

package info (click to toggle)
openrct2 0.4.31%2Bds-1
  • links: PTS, VCS
  • area: contrib
  • in suites: sid
  • size: 105,012 kB
  • sloc: cpp: 677,649; ansic: 1,322; javascript: 716; xml: 646; sh: 439; python: 313; php: 34; makefile: 19
file content (29 lines) | stat: -rwxr-xr-x 1,452 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env bash

set -e

echo "Creating macOS universal app bundle"
# create app skeleton
mkdir OpenRCT2-universal.app
mkdir OpenRCT2-universal.app/Contents

# copy all resources (most will overwrite)
mkdir OpenRCT2-universal.app/Contents/Resources
# Note: g2.dat is expected to only be in one (matching OS of build machine)
rsync -ah x64/OpenRCT2.app/Contents/Resources/* OpenRCT2-universal.app/Contents/Resources/
rsync -ah arm64/OpenRCT2.app/Contents/Resources/* OpenRCT2-universal.app/Contents/Resources/

# create a universal binary
mkdir OpenRCT2-universal.app/Contents/MacOS
lipo -create x64/OpenRCT2.app/Contents/MacOS/OpenRCT2 arm64/OpenRCT2.app/Contents/MacOS/OpenRCT2 -output OpenRCT2-universal.app/Contents/MacOS/OpenRCT2

# copy frameworks
mkdir OpenRCT2-universal.app/Contents/Frameworks
# the Frameworks are identical and are already universal dylibs
rsync -ah x64/OpenRCT2.app/Contents/Frameworks/* OpenRCT2-universal.app/Contents/Frameworks

# handle Info.plist
defaults import $PWD/OpenRCT2-universal.app/Contents/Info $PWD/x64/OpenRCT2.app/Contents/Info.plist $PWD/arm64/OpenRCT2.app/Contents/Info.plist
arm64_min_ver=$(defaults read $PWD/arm64/OpenRCT2.app/Contents/Info LSMinimumSystemVersion)
x64_min_ver=$(defaults read $PWD/x64/OpenRCT2.app/Contents/Info LSMinimumSystemVersion)
defaults write $PWD/OpenRCT2-universal.app/Contents/Info LSMinimumSystemVersionByArchitecture -dict x86_64 ${x64_min_ver} arm64 ${arm64_min_ver}