commit a741b7cab63983c0e58ebc99500bb3c81976c1c6
parent be7593e1e34711a0deebe40d135421784c7cd805
Author: triesap <tyson@radroots.org>
Date: Sun, 15 Feb 2026 19:59:31 +0000
build: repoint RadrootsCore ffi sources
- update RadrootsCore Cargo workspace dependency for radroots-app-ffi-swift
- align ios wrapper make targets with the shared ffi source layout
- refresh RadrootsCore README build paths and dependency wording
- verify with cargo metadata on RadrootsCore manifest
Diffstat:
4 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,4 +1,4 @@
-WRAPPER_ROOT := $(CURDIR)/RadrootsCore
+WRAPPER_ROOT := RadrootsCore
.PHONY: all clean build generate package bindings
diff --git a/RadrootsCore/Cargo.toml b/RadrootsCore/Cargo.toml
@@ -11,4 +11,4 @@ description = "radroots ios rust wrapper manifest"
resolver = "2"
[workspace.dependencies]
-radroots-app-ffi-swift = { path = "../../crates/app-ffi-swift" }
+radroots-app-ffi-swift = { path = "../../../../../../foundation/oss/rs/crates/app-ffi-swift" }
diff --git a/RadrootsCore/Makefile b/RadrootsCore/Makefile
@@ -1,14 +1,12 @@
CRATE := radroots-app-ffi-swift
-WRAPPER_ROOT := $(CURDIR)
-IOS_ROOT := $(abspath $(WRAPPER_ROOT)/..)
-CRATES_ROOT := $(abspath $(WRAPPER_ROOT)/../../crates)
+CRATES_ROOT := ../../../../../../foundation/oss/rs/crates
FFI_MANIFEST := $(CRATES_ROOT)/app-ffi-swift/Cargo.toml
-RUST_TARGET_DIR := $(WRAPPER_ROOT)/target
+RUST_TARGET_DIR := target
OUTDIR := $(RUST_TARGET_DIR)/xcframework
-CARGO_FFI := cd $(WRAPPER_ROOT) && CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo
+CARGO_FFI := CARGO_TARGET_DIR=$(RUST_TARGET_DIR) cargo
-FRAMEWORK_DEST := $(IOS_ROOT)/RadrootsKit/Artifacts
-GENERATED_SWIFT := $(IOS_ROOT)/RadrootsKit/Sources/RadrootsKit/Generated
+FRAMEWORK_DEST := ../RadrootsKit/Artifacts
+GENERATED_SWIFT := ../RadrootsKit/Sources/RadrootsKit/Generated
CONFIG_PATH := $(CRATES_ROOT)/app-ffi-swift/uniffi.toml
LIB_DEV := $(RUST_TARGET_DIR)/aarch64-apple-ios/release/libradroots_app_ffi_swift.a
diff --git a/RadrootsCore/README.md b/RadrootsCore/README.md
@@ -3,16 +3,17 @@
`ios/RadrootsCore` is the iOS Rust wrapper for the shared Swift FFI crate.
## Source of truth
-- `../../crates/app-ffi-swift` (built via `--manifest-path`)
+- `../../../../../../foundation/oss/rs/crates/app-ffi-swift` (built via `--manifest-path`)
+- the transitive `radroots-*` crate graph resolves through that vendor workspace, where those crates use `workspace = true`
## Dependency pattern
-- Keep `radroots-app-ffi-swift` in `[workspace.dependencies]` with a local `path` during development.
+- Keep `radroots-app-ffi-swift` in `[workspace.dependencies]` with a monorepo-relative `path`.
- Switch this to a crates.io version later without changing the make/build flow.
- Do not link `radroots-app-ffi-swift` as a Rust `[dependencies]` crate in this wrapper.
## Build flow
Run `make -C ios` (or `make -C ios/RadrootsCore`) to:
-- build from `../../crates/app-ffi-swift/Cargo.toml`
+- build from `../../../../../../foundation/oss/rs/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`