# libghostty (volle macOS-Variante, mit Metal-Renderer)

Einbettbare Ghostty-Kernbibliothek inkl. Surface-/App-API und Metal-Renderer —
dieselbe, die Ghostty.app auf macOS nutzt. Zum Linken in die Swift-Hülle
(`Sources/MiniTerm`) als Ersatz/Ergänzung zu SwiftTerm.

## Inhalt
- `lib/libghostty.a` — statische Lib, **arm64**, ReleaseFast (~135 MB)
- `include/` — C-Header (`ghostty.h` = volle API; `ghostty/vt*` = VT-only-API)
- `patches/ghostty-v1.3.1-libghostty-clt-build.patch` — Build-Patches (s. u.)

## Zentrale API (in `include/ghostty.h`)
`ghostty_init`, `ghostty_app_new`, `ghostty_surface_new`, `ghostty_surface_draw`,
`ghostty_surface_key`, `ghostty_surface_free`, …

## Quelle / Build
- Ghostty **v1.3.1**, Zig **0.15.2**.
- Gebaut in einer **macOS-15-VM** (tart, cirruslabs `macos-sequoia-xcode`), weil
  Zig 0.15.2 auf dem Host (macOS 26.5) kein natives Binary linkt (libSystem-
  Inkompatibilität mit dem 26er-SDK; reine Auto-Erkennung von `26.x` scheitert).
- In der VM aktiv: **Command Line Tools** (macOS-15.5-SDK) → Zig linkt sauber.
  Der Metal-Shader-Compiler (`metal`) wird nur für den Shader-Schritt per
  `DEVELOPER_DIR` aus dem installierten Xcode geholt (s. Patch `MetallibStep.zig`).

Build-Aufruf in der VM:

    sudo xcode-select -s /Library/Developer/CommandLineTools
    cd ghostty && git apply ghostty-v1.3.1-libghostty-clt-build.patch
    zig build -Doptimize=ReleaseFast -Demit-xcframework=false
    # Ergebnis: zig-out/lib/libghostty.a, zig-out/include/

## Patches (warum)
- `build.zig`: Auf Darwin den macOS-`libghostty.a`-Install freischalten
  (Original klammert ihn per `if (!isDarwin())` aus, baut sonst nur ein
  xcframework). Shared-`.so`-Install entfernt (Dynamic-Link schlug fehl,
  wird nicht gebraucht).
- `GhosttyXCFramework.zig`: Nur die native macOS-Slice konstruieren —
  iOS/iOS-Simulator/Universal raus (CLT hat kein iOS-SDK, brauchen wir nicht).
- `MetallibStep.zig`: `metal`/`metallib` über `DEVELOPER_DIR=<Xcode>` aufrufen,
  damit der Shader-Compiler trotz aktivem CLT gefunden wird.
