YrXtals/scripts/ios/xcode-cargo.sh

39 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
case "${PLATFORM_NAME:-}" in
iphoneos)
case "${ARCHS:-}" in
*arm64*) RUST_TARGET="aarch64-apple-ios" ;;
*) echo "unsupported ARCHS=$ARCHS for $PLATFORM_NAME" >&2; exit 1 ;;
esac
;;
iphonesimulator)
case "${ARCHS:-}" in
*arm64*) RUST_TARGET="aarch64-apple-ios-sim" ;;
*x86_64*) RUST_TARGET="x86_64-apple-ios" ;;
*) echo "unsupported ARCHS=$ARCHS for $PLATFORM_NAME" >&2; exit 1 ;;
esac
;;
*)
echo "unsupported PLATFORM_NAME=$PLATFORM_NAME" >&2
exit 1
;;
esac
ROOT="$(cd "${PROJECT_DIR:-.}/.." && pwd)"
export PATH="$HOME/.cargo/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export IPHONEOS_DEPLOYMENT_TARGET="${IPHONEOS_DEPLOYMENT_TARGET:-17.0}"
cd "$ROOT"
cargo build --release --target "$RUST_TARGET" --lib
rm -f "/tmp/yr_crystals-target/$RUST_TARGET/release/libyr_crystals.dylib" \
"/tmp/yr_crystals-target/$RUST_TARGET/release/deps/libyr_crystals.dylib"
mkdir -p "$ROOT/target"
ln -sfn "/tmp/yr_crystals-target/$RUST_TARGET" "$ROOT/target/$PLATFORM_NAME"