c8f5714b1e
- vendor/libghostty: vorgebaute macOS-libghostty.a (arm64) + Header + Build-Patches + README - Sources/CGhostty: C-Modul der libghostty-C-API - Sources/MiniTerm/Ghostty.swift: GhosttyApp + GhosttySurfaceView (Surface, Input, Größe, Fokus) - main.swift: Engine-Wahl per Info.plist MTEngine - Package.swift: CGhostty-Target + Link gegen libghostty + Frameworks - STATUS.md: Stand, Build-Weg (macOS-15-VM), offene Punkte
2.0 KiB
2.0 KiB
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 von26.xscheitert). - 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 perDEVELOPER_DIRaus dem installierten Xcode geholt (s. PatchMetallibStep.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 perif (!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überDEVELOPER_DIR=<Xcode>aufrufen, damit der Shader-Compiler trotz aktivem CLT gefunden wird.