Add macos/ios app using rust lib

This commit is contained in:
Piv
2023-02-03 21:29:23 +10:30
parent 1168ca46db
commit 734a19f711
25 changed files with 1265 additions and 8 deletions

View File

@@ -0,0 +1,56 @@
#!/bin/sh
# create-lib.sh
# FastCoster
#
# Created by Michael Pivato on 3/2/2023.
#
set -x
# create-iospw.sh
# Build the correct Rust target and place
# the resulting library in the build products
#
# The $PATH used by Xcode likely won't contain Cargo, fix that.
# In addition, the $PATH used by XCode has lots of Apple-specific
# developer tools that your Cargo isn't expecting to use, fix that.
# Note: This assumes a default `rustup` setup and default path.
build_path="$HOME/.cargo/bin:/usr/local/bin:/usr/bin:/bin"
#
# Figure out the correct Rust target from the ARCHS and PLATFORM.
# This script expects just one element in ARCHS.
case "$ARCHS" in
"arm64") rust_arch="aarch64" ;;
"x86_64") rust_arch="x86_64" ;;
*) echo "error: unsupported architecture: $ARCHS" ;;
esac
if [[ "$PLATFORM_NAME" == "macosx" ]]; then
rust_platform="apple-darwin"
else
rust_platform="apple-ios"
fi
if [[ "$PLATFORM_NAME" == "iphonesimulator" ]]; then
if [[ "${rust_arch}" == "aarch64" ]]; then
rust_abi="-sim"
else
rust_abi=""
fi
else
rust_abi=""
fi
rust_target="${rust_arch}-${rust_platform}${rust_abi}"
#
# Build library in debug or release
build_args=(--manifest-path ../costerrs/Cargo.toml --target "${rust_target}")
if [[ "$CONFIGURATION" == "Release" ]]; then
rust_config="release"
env PATH="${build_path}" cargo build --release "${build_args[@]}"
elif [[ "$CONFIGURATION" == "Debug" ]]; then
rust_config="release"
env PATH="${build_path}" cargo build --release "${build_args[@]}"
else
echo "error: Unexpected build configuration: $CONFIGURATION"
fi
#
# Copy the built library to the derived files directory
cp -v "../costerrs/target/${rust_target}/${rust_config}/libcoster_rs.a" ${DERIVED_FILES_DIR}