aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/build/SharedDeps.zig
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-07 18:29:21 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-07 18:29:21 +0300
commitdcfe11a7588fcd42471159453810abc9b7720a57 (patch)
treec32a77266028e73ca2382b96c96f8438a5fcd621 /vendor/libghostty-vt/src/build/SharedDeps.zig
parent2dfed860103c4e4505ac7f25def9fe37da1e1e6a (diff)
build: update libghostty-vt vendor
vendor ghostty 063ac3e and remove the musl libc++ link workaround. expose the new selection formatter and hyperlink uri apis for follow-up rendering work. add manual artifact validation for static linux builds.
Diffstat (limited to 'vendor/libghostty-vt/src/build/SharedDeps.zig')
-rw-r--r--vendor/libghostty-vt/src/build/SharedDeps.zig54
1 files changed, 35 insertions, 19 deletions
diff --git a/vendor/libghostty-vt/src/build/SharedDeps.zig b/vendor/libghostty-vt/src/build/SharedDeps.zig
index aa63c082..b68be92d 100644
--- a/vendor/libghostty-vt/src/build/SharedDeps.zig
+++ b/vendor/libghostty-vt/src/build/SharedDeps.zig
@@ -133,7 +133,7 @@ pub fn add(
step.root_module.addOptions("build_options", self.options);
// Every exe needs the terminal options
- self.config.terminalOptions().add(b, step.root_module);
+ self.config.terminalOptions(.ghostty).add(b, step.root_module);
// C imports for locale constants and functions
{
@@ -412,7 +412,16 @@ pub fn add(
// C files
step.linkLibC();
step.addIncludePath(b.path("src/stb"));
- step.addCSourceFiles(.{ .files = &.{"src/stb/stb.c"} });
+ // Disable ubsan for MSVC: Zig's ubsan runtime cannot be bundled
+ // on Windows (LNK4229), leaving __ubsan_handle_* unresolved when
+ // the static archive is consumed by an external linker.
+ step.addCSourceFiles(.{
+ .files = &.{"src/stb/stb.c"},
+ .flags = if (step.rootModuleTarget().abi == .msvc)
+ &.{ "-fno-sanitize=undefined", "-fno-sanitize-trap=undefined" }
+ else
+ &.{},
+ });
if (step.rootModuleTarget().os.tag == .linux) {
step.addIncludePath(b.path("src/apprt/gtk"));
}
@@ -753,6 +762,7 @@ pub fn addSimd(
) !void {
const target = m.resolved_target.?;
const optimize = m.optimize.?;
+ const system_highway = b.systemIntegrationOption("highway", .{ .default = false });
// Simdutf
if (b.systemIntegrationOption("simdutf", .{})) {
@@ -761,6 +771,7 @@ pub fn addSimd(
if (b.lazyDependency("simdutf", .{
.target = target,
.optimize = optimize,
+ .no_libcxx = true,
})) |simdutf_dep| {
m.linkLibrary(simdutf_dep.artifact("simdutf"));
if (static_libs) |v| try v.append(
@@ -771,7 +782,7 @@ pub fn addSimd(
}
// Highway
- if (b.systemIntegrationOption("highway", .{ .default = false })) {
+ if (system_highway) {
m.linkSystemLibrary("libhwy", dynamic_link_opts);
} else {
if (b.lazyDependency("highway", .{
@@ -786,18 +797,6 @@ pub fn addSimd(
}
}
- // utfcpp - This is used as a dependency on our hand-written C++ code
- if (b.lazyDependency("utfcpp", .{
- .target = target,
- .optimize = optimize,
- })) |utfcpp_dep| {
- m.linkLibrary(utfcpp_dep.artifact("utfcpp"));
- if (static_libs) |v| try v.append(
- b.allocator,
- utfcpp_dep.artifact("utfcpp").getEmittedBin(),
- );
- }
-
// SIMD C++ files
m.addIncludePath(b.path("src"));
{
@@ -830,10 +829,27 @@ pub fn addSimd(
"-std=c++17",
);
- // Disable ubsan for MSVC to avoid undefined references to
- // __ubsan_handle_* symbols that require a runtime we don't link
- // and bundle. Hopefully we can fix this one day since ubsan is nice!
- if (target.result.abi == .msvc) try flags.appendSlice(b.allocator, &.{
+ // Keep our SIMD sources in the same Highway header mode as the
+ // vendored package build so HWY's inline dispatch/runtime helpers
+ // have a consistent ABI.
+ if (!system_highway) try flags.append(
+ b.allocator,
+ "-DHWY_NO_LIBCXX",
+ );
+
+ // When using the vendored simdutf, build its headers in no-libcxx
+ // mode so we don't need C++ standard library headers at all.
+ // System simdutf headers may not support this define.
+ if (!b.systemIntegrationOption("simdutf", .{})) try flags.append(
+ b.allocator,
+ "-DSIMDUTF_NO_LIBCXX",
+ );
+
+ // Disable ubsan for Windows C/C++ objects to avoid undefined
+ // __ubsan_handle_* references. The Zig libraries on Windows don't
+ // currently bundle a matching UBSan runtime for these objects in
+ // our build configurations (this affects both MSVC and GNU ABIs).
+ if (target.result.os.tag == .windows) try flags.appendSlice(b.allocator, &.{
"-fno-sanitize=undefined",
"-fno-sanitize-trap=undefined",
});