summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig17
1 files changed, 16 insertions, 1 deletions
diff --git a/build.zig b/build.zig
index 58179faf..2b728ea1 100644
--- a/build.zig
+++ b/build.zig
@@ -304,11 +304,20 @@ pub fn build(b: *std.Build) void {
// (.{ .READ = true, .WRITE = true });
// src/terminal/kitty/graphics_image.zig:185 — shm_open's variadic mode
// literal 0 must be @as(std.c.mode_t, 0).
+ // Darwin HOSTS need a third: src/build/GhosttyDist.zig:28 — the dist
+ // tarball's GTK resources run pkg-config for libadwaita eagerly (panics
+ // without it); gate that block on `b.graph.host.result.os.tag == .linux`.
+ // Ghostty's pinned translate-c tarball also 404s now (codeberg dropped
+ // the archive endpoint) — seed zig-pkg/ from a machine that has it.
const ghostty_simd = !target.result.os.tag.isDarwin() or b.graph.host.result.os.tag.isDarwin();
+ // app-runtime none + emit-xcframework off: only the ghostty-vt module is
+ // consumed, and the defaults otherwise drag ghostty's app graph into the
+ // build — gtk4 header translation via host pkg-config for linux targets,
+ // the Xcode app graph (iOS SDK, xcodebuild) on darwin hosts.
const ghostty_dep = if (is_emscripten)
b.lazyDependency("ghostty", .{ .simd = false })
else
- b.lazyDependency("ghostty", .{ .target = target, .optimize = optimize, .simd = ghostty_simd });
+ b.lazyDependency("ghostty", .{ .target = target, .optimize = optimize, .simd = ghostty_simd, .@"app-runtime" = .none, .@"emit-xcframework" = false });
if (ghostty_dep) |dep| {
const ghostty_vt = dep.module("ghostty-vt");
ghostty_vt_for_snap = ghostty_vt;
@@ -365,6 +374,12 @@ pub fn build(b: *std.Build) void {
if (emscripten_include) |include| root_mod.addSystemIncludePath(include);
if (is_emscripten) wasm_libs.append(b.allocator, sdl_lib.getEmittedBin()) catch @panic("OOM");
}
+ // darwin: SDL_GPU only speaks SPIRV here (shaders/*.glsl -> glslc), so
+ // it must pick its vulkan backend via the Vulkan SDK's loader +
+ // MoltenVK in /usr/local/lib — a path dyld no longer searches for
+ // bare dlopen names. The rpath restores that lookup.
+ if (target.result.os.tag.isDarwin())
+ root_mod.addRPath(.{ .cwd_relative = "/usr/local/lib" });
root_mod.addIncludePath(b.path("vendor/stb"));
root_mod.addCSourceFile(.{ .file = b.path("vendor/stb/stb_truetype_impl.c") });
root_mod.addCSourceFile(.{ .file = b.path("vendor/stb/font.c") });