Hive Hive
Sign in

feat: Add granular Apple build primitives

GitHub issue · Closed

Metadata
Source
tuist/once #20
Updated
Jun 24, 2026
Domains
Once
Details

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 --workspace
  • mise exec -- cargo clippy --workspace --all-targets -- -D warnings
  • mise exec -- cargo fmt --all -- --check
  • mise exec -- cargo build --release
  • mise exec -- shellspec
Comments

No GitHub comments yet.