44 lines
1.1 KiB
Bash
44 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
case $1 in
|
||
|
x86|arm)
|
||
|
;;
|
||
|
*)
|
||
|
echo "Usage: release_macos.sh [platform]\n - platform: 'x86', 'arm'" >&2
|
||
|
exit 1
|
||
|
esac
|
||
|
|
||
|
if [[ ! -v SDKROOT ]]; then
|
||
|
echo "MacOS SDKROOT is not set"
|
||
|
exit 1
|
||
|
elif [[ -z "SDKROOT" ]]; then
|
||
|
echo "MacOS SDKROOT is set to the empty string"
|
||
|
exit 1
|
||
|
else
|
||
|
echo "Use MacOS SDK: ${SDKROOT}"
|
||
|
fi
|
||
|
|
||
|
# Setup build directory
|
||
|
BASEDIR=$(cd $(dirname $0) && pwd)
|
||
|
cd ${BASEDIR}
|
||
|
cd ..
|
||
|
|
||
|
# Setup platform argument
|
||
|
[[ $1 == "x86" ]] && arch+=(x86_64-apple-darwin)
|
||
|
[[ $1 == "arm" ]] && arch+=(aarch64-apple-darwin)
|
||
|
|
||
|
# Start release build with zig linker for cross-compilation
|
||
|
cargo install cargo-zigbuild
|
||
|
cargo zigbuild --release --target ${arch}
|
||
|
rm .intentionally-empty-file.o
|
||
|
yes | cp -rf target/${arch}/release/grim macos/Grim.app/Contents/MacOS/grim-bin
|
||
|
|
||
|
### Sign .app before distribution:
|
||
|
### rcodesign generate-self-signed-certificate
|
||
|
### rcodesign sign --pem-file test.pem macos/Grim.app
|
||
|
|
||
|
# Create release package
|
||
|
FILE_NAME=Grim-0.1.0-macos-$1.zip
|
||
|
zip ${FILE_NAME} target/${arch}/release/grim macos/Grim.app
|
||
|
mv -f ${FILE_NAME} target/${arch}/release
|