field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | LICENSE

commit a28264830bb9f5a8b0812f0937835a62fde16d2a
parent 649b96d46fe36367daafcda6f7713dcb210f7a71
Author: triesap <tyson@radroots.org>
Date:   Sun, 15 Feb 2026 18:28:14 +0000

build: align radrootscore makefile to shared ffi crate

- build ios ffi artifacts through crates/app-ffi-swift manifest path
- keep arm64 ios device and arm64 simulator targets as the default matrix
- keep rust build cache under ios/radrootscore/target and outputs in radrootskit
- update radrootscore readme to document the wrapper-driven shared crate flow

Diffstat:
MRadrootsCore/Makefile | 20+++++++++++---------
MRadrootsCore/README.md | 3++-
2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/RadrootsCore/Makefile b/RadrootsCore/Makefile @@ -1,16 +1,18 @@ CRATE := radroots-app-ffi-swift WRAPPER_ROOT := $(CURDIR) IOS_ROOT := $(abspath $(WRAPPER_ROOT)/..) -CRATES_ROOT := $(abspath $(IOS_ROOT)/../crates) -OUTDIR := $(WRAPPER_ROOT)/target/xcframework +CRATES_ROOT := $(abspath $(WRAPPER_ROOT)/../../crates) +FFI_MANIFEST := $(CRATES_ROOT)/app-ffi-swift/Cargo.toml +RUST_TARGET_DIR := $(WRAPPER_ROOT)/target +OUTDIR := $(RUST_TARGET_DIR)/xcframework FRAMEWORK_DEST := $(IOS_ROOT)/RadrootsKit/Artifacts GENERATED_SWIFT := $(IOS_ROOT)/RadrootsKit/Sources/RadrootsKit/Generated CONFIG_PATH := $(CRATES_ROOT)/app-ffi-swift/uniffi.toml -LIB_DEV := $(WRAPPER_ROOT)/target/aarch64-apple-ios/release/libradroots_app_ffi_swift.a -LIB_SIM_ARM64 := $(WRAPPER_ROOT)/target/aarch64-apple-ios-sim/release/libradroots_app_ffi_swift.a -HOST_DYLIB := $(WRAPPER_ROOT)/target/release/libradroots_app_ffi_swift.dylib +LIB_DEV := $(RUST_TARGET_DIR)/aarch64-apple-ios/release/libradroots_app_ffi_swift.a +LIB_SIM_ARM64 := $(RUST_TARGET_DIR)/aarch64-apple-ios-sim/release/libradroots_app_ffi_swift.a +HOST_DYLIB := $(RUST_TARGET_DIR)/release/libradroots_app_ffi_swift.dylib HEADERS_DIR := $(OUTDIR)/headers @@ -28,15 +30,15 @@ clean: build: @echo "building $(CRATE) for ios device + simulator..." - cd $(CRATES_ROOT) && CARGO_TARGET_DIR=$(WRAPPER_ROOT)/target cargo build -p $(CRATE) --release --target aarch64-apple-ios - cd $(CRATES_ROOT) && CARGO_TARGET_DIR=$(WRAPPER_ROOT)/target cargo build -p $(CRATE) --release --target aarch64-apple-ios-sim + cd $(WRAPPER_ROOT) && CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo build --manifest-path $(FFI_MANIFEST) --release --target aarch64-apple-ios + cd $(WRAPPER_ROOT) && CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo build --manifest-path $(FFI_MANIFEST) --release --target aarch64-apple-ios-sim @echo "building host cdylib for uniffi metadata..." - cd $(CRATES_ROOT) && CARGO_TARGET_DIR=$(WRAPPER_ROOT)/target cargo build -p $(CRATE) --release + cd $(WRAPPER_ROOT) && CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo build --manifest-path $(FFI_MANIFEST) --release generate: @echo "generating swift bindings with uniffi..." - cd $(CRATES_ROOT) && CARGO_TARGET_DIR=$(WRAPPER_ROOT)/target cargo run -p $(CRATE) --bin uniffi-bindgen -- \ + cd $(WRAPPER_ROOT) && CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo run --manifest-path $(FFI_MANIFEST) --bin uniffi-bindgen -- \ generate --library $(HOST_DYLIB) \ --language swift \ --out-dir $(OUTDIR)/generated \ diff --git a/RadrootsCore/README.md b/RadrootsCore/README.md @@ -16,6 +16,7 @@ When crates.io releases are ready, these paths can be switched to versioned depe ## Build flow Use `make -C ios/RadrootsCore` (or `make` from `ios/`) to: -- build Rust libs from shared crates +- build from `../../crates/app-ffi-swift/Cargo.toml` +- write Rust build artifacts under `ios/RadrootsCore/target` - generate UniFFI Swift bindings - package `RadrootsFFI.xcframework` into `ios/RadrootsKit/Artifacts`