43 lines
1.3 KiB
Bash
Executable File
43 lines
1.3 KiB
Bash
Executable File
#!/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}"
|