mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-08 02:14:37 +00:00
37afbdeffc
Adds `scripts/local-build.sh` for unsigned command-line Debug builds
so contributors without an Apple Developer account can clone, build,
and run without provisioning gymnastics. The script:
- Detects arm64 / x86_64
- Verifies xcode-select, xcrun, xcodebuild are present
- Probes the Metal toolchain and offers an interactive install (gated
on `[[ -t 0 && -z "${CI:-}" ]]` — CI never gets prompted)
- Resolves Swift packages, builds Debug with signing disabled
- Optionally `ditto`s the result to /Applications/scarf.app on
explicit y/N
`BUILDING.md` documents prerequisites alongside the script. Existing
canonical Release universal CLI in README stays — `local-build.sh`
is an alternative for contributors, not a replacement for the
shipping build.
Cherry-picked from #76 with thanks to @unixwzrd. BUILDING.md's
prerequisites are corrected to match the actual deployment target
(macOS 26.2, Xcode 26.2+).
Co-Authored-By: M S <unixwzrd.register@mac.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 lines
955 B
Markdown
25 lines
955 B
Markdown
# Building Scarf
|
|
|
|
Scarf is a native macOS app built with Xcode. For contributor builds, use the local script:
|
|
|
|
```bash
|
|
./scripts/local-build.sh
|
|
```
|
|
|
|
Requirements:
|
|
|
|
- macOS 26.2 or newer (the app's deployment target)
|
|
- Xcode 26.2 or newer, selected by `xcode-select`
|
|
- Metal toolchain installed
|
|
- Hermes installed at `~/.hermes/` (see the project README for setup)
|
|
|
|
If the Metal toolchain is missing, the script will offer to install it in interactive shells. You can also install it manually:
|
|
|
|
```bash
|
|
xcodebuild -downloadComponent MetalToolchain
|
|
```
|
|
|
|
`scripts/local-build.sh` resolves Swift package dependencies, detects `arm64` vs `x86_64`, and builds the Debug app unsigned. Signing is intentionally disabled for local Debug builds so contributors do not need the maintainer's Apple Developer account.
|
|
|
|
Release signing is separate from contributor builds. Maintainers should continue using the existing release process for signed distributable builds.
|