Hive
feat: Add granular Apple build primitives
GitHub issue · Closed
Summary
Adds TOML-declared Apple Swift build primitives for apple.swift_library, apple.static_framework, apple.dynamic_framework, and apple.macos_command_line_application.
swift_library expands into separate cacheable compile and archive actions. Library compile actions depend on dependency module outputs, while executable and framework actions depend on dependency root outputs for linking.
The local graph now uses lower-level Fabrik declarations and project-root-relative target ids such as examples/apple/macos/cli/hello. Build-file deps stay local by default, so same-file deps can be written as Greeter, while ./ and ../ resolve relative to the declaring fabrik.toml.
This removes the old build-file compatibility path so fabrik.toml is the single scanned build-file surface, updates fabrik vendor to emit vendor/fabrik.toml, and drops the unused parser dependency.
The examples now live under examples/apple/macos/..., including a Tuist-shaped module graph that mimics a layered CLI build without importing Tuist-specific project structure. The previous large examples spec is split into Apple, Rust, and target-listing specs.
Validation
mise exec -- cargo test --workspacemise exec -- cargo clippy --workspace --all-targets -- -D warningsmise exec -- cargo fmt --all -- --checkmise exec -- cargo build --releasemise exec -- shellspec
No GitHub comments yet.