#!/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 cert.pem macos/Grim.app

# Create release package
FILE_NAME=Grim-0.1.0-macos-$1.zip
rm target/${arch}/release/${FILE_NAME}
cd macos
zip -r ${FILE_NAME} Grim.app
mv ${FILE_NAME} ../target/${arch}/release