Add fake iOS FFI XCFramework build
This commit is contained in:
42
scripts/build-ios-fake-ffi-xcframework.sh
Executable file
42
scripts/build-ios-fake-ffi-xcframework.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
out_dir="${1:-${repo_root}/build/ios-fake-ffi-xcframework}"
|
||||
target="${IOS_RUST_TARGET:-aarch64-apple-ios-sim}"
|
||||
lib_path="${repo_root}/target/${target}/release/libtele_ios_ffi.a"
|
||||
framework_name="${IOS_FFI_FRAMEWORK_NAME:-tele_ios_ffi}"
|
||||
|
||||
if [[ -z "${DEVELOPER_DIR:-}" && -d /Applications/Xcode.app/Contents/Developer ]]; then
|
||||
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
|
||||
fi
|
||||
|
||||
cd "${repo_root}"
|
||||
|
||||
if ! rustup target list --installed | grep -qx "${target}"; then
|
||||
rustup target add "${target}"
|
||||
fi
|
||||
|
||||
cargo build \
|
||||
-p tele-ios-ffi \
|
||||
--no-default-features \
|
||||
--features standalone-fake \
|
||||
--target "${target}" \
|
||||
--release
|
||||
|
||||
rm -rf "${out_dir}"
|
||||
mkdir -p "${out_dir}/Swift" "${out_dir}/Headers"
|
||||
|
||||
cargo run -p uniffi-bindgen-swift -- "${lib_path}" "${out_dir}/Swift" --swift-sources
|
||||
cargo run -p uniffi-bindgen-swift -- "${lib_path}" "${out_dir}/Headers" --headers
|
||||
cargo run -p uniffi-bindgen-swift -- "${lib_path}" "${out_dir}/Headers" \
|
||||
--modulemap \
|
||||
--module-name tele_ios_ffiFFI \
|
||||
--modulemap-filename module.modulemap
|
||||
|
||||
xcodebuild -create-xcframework \
|
||||
-library "${lib_path}" \
|
||||
-headers "${out_dir}/Headers" \
|
||||
-output "${out_dir}/${framework_name}.xcframework"
|
||||
|
||||
printf 'Generated fake-only iOS FFI XCFramework in %s\n' "${out_dir}"
|
||||
Reference in New Issue
Block a user