diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-04-04 19:22:04 +0300 |
|---|---|---|
| committer | Can Celik <ogulcancelik@gmail.com> | 2026-04-05 01:23:06 +0300 |
| commit | 41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch) | |
| tree | 3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/pkg/breakpad | |
| parent | 55c138263e190a1e79d4b997bfb9397306c0ec1f (diff) | |
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/pkg/breakpad')
| -rw-r--r-- | vendor/libghostty-vt/pkg/breakpad/build.zig | 159 | ||||
| -rw-r--r-- | vendor/libghostty-vt/pkg/breakpad/build.zig.zon | 15 |
2 files changed, 174 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/pkg/breakpad/build.zig b/vendor/libghostty-vt/pkg/breakpad/build.zig new file mode 100644 index 00000000..56d51b15 --- /dev/null +++ b/vendor/libghostty-vt/pkg/breakpad/build.zig @@ -0,0 +1,159 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lib = b.addLibrary(.{ + .name = "breakpad", + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + }), + .linkage = .static, + }); + lib.linkLibCpp(); + lib.addIncludePath(b.path("vendor")); + if (target.result.os.tag.isDarwin()) { + const apple_sdk = @import("apple_sdk"); + try apple_sdk.addPaths(b, lib); + } + + var flags: std.ArrayList([]const u8) = .empty; + defer flags.deinit(b.allocator); + + if (b.lazyDependency("breakpad", .{})) |upstream| { + lib.addIncludePath(upstream.path("src")); + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = common, + .flags = flags.items, + }); + + if (target.result.os.tag.isDarwin()) { + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = common_apple, + .flags = flags.items, + }); + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = client_apple, + .flags = flags.items, + }); + + switch (target.result.os.tag) { + .macos => { + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = common_mac, + .flags = flags.items, + }); + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = client_mac, + .flags = flags.items, + }); + }, + + .ios => lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = client_ios, + .flags = flags.items, + }), + + else => {}, + } + } + + if (target.result.os.tag == .linux) { + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = common_linux, + .flags = flags.items, + }); + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .files = client_linux, + .flags = flags.items, + }); + } + + lib.installHeadersDirectory( + upstream.path("src"), + "", + .{ .include_extensions = &.{".h"} }, + ); + } + + b.installArtifact(lib); +} + +const common: []const []const u8 = &.{ + "src/common/convert_UTF.cc", + "src/common/md5.cc", + "src/common/string_conversion.cc", +}; + +const common_linux: []const []const u8 = &.{ + "src/common/linux/elf_core_dump.cc", + "src/common/linux/elfutils.cc", + "src/common/linux/file_id.cc", + "src/common/linux/guid_creator.cc", + "src/common/linux/linux_libc_support.cc", + "src/common/linux/memory_mapped_file.cc", + "src/common/linux/safe_readlink.cc", + "src/common/linux/scoped_pipe.cc", + "src/common/linux/scoped_tmpfile.cc", + "src/common/linux/breakpad_getcontext.S", +}; + +const common_apple: []const []const u8 = &.{ + "src/common/mac/arch_utilities.cc", + "src/common/mac/file_id.cc", + "src/common/mac/macho_id.cc", + "src/common/mac/macho_utilities.cc", + "src/common/mac/macho_walker.cc", + "src/common/mac/string_utilities.cc", +}; + +const common_mac: []const []const u8 = &.{ + "src/common/mac/MachIPC.mm", + "src/common/mac/bootstrap_compat.cc", +}; + +const client_linux: []const []const u8 = &.{ + "src/client/minidump_file_writer.cc", + "src/client/linux/crash_generation/crash_generation_client.cc", + "src/client/linux/crash_generation/crash_generation_server.cc", + "src/client/linux/dump_writer_common/thread_info.cc", + "src/client/linux/dump_writer_common/ucontext_reader.cc", + "src/client/linux/handler/exception_handler.cc", + "src/client/linux/handler/minidump_descriptor.cc", + "src/client/linux/log/log.cc", + "src/client/linux/microdump_writer/microdump_writer.cc", + "src/client/linux/minidump_writer/linux_core_dumper.cc", + "src/client/linux/minidump_writer/linux_dumper.cc", + "src/client/linux/minidump_writer/linux_ptrace_dumper.cc", + "src/client/linux/minidump_writer/minidump_writer.cc", + "src/client/linux/minidump_writer/pe_file.cc", +}; + +const client_apple: []const []const u8 = &.{ + "src/client/minidump_file_writer.cc", + "src/client/mac/handler/breakpad_nlist_64.cc", + "src/client/mac/handler/dynamic_images.cc", + "src/client/mac/handler/minidump_generator.cc", +}; + +const client_mac: []const []const u8 = &.{ + "src/client/mac/handler/exception_handler.cc", + "src/client/mac/crash_generation/crash_generation_client.cc", +}; + +const client_ios: []const []const u8 = &.{ + "src/client/ios/exception_handler_no_mach.cc", + "src/client/ios/handler/ios_exception_minidump_generator.mm", + "src/client/mac/crash_generation/ConfigFile.mm", + "src/client/mac/handler/protected_memory_allocator.cc", +}; diff --git a/vendor/libghostty-vt/pkg/breakpad/build.zig.zon b/vendor/libghostty-vt/pkg/breakpad/build.zig.zon new file mode 100644 index 00000000..0d6c54c9 --- /dev/null +++ b/vendor/libghostty-vt/pkg/breakpad/build.zig.zon @@ -0,0 +1,15 @@ +.{ + .name = .breakpad, + .version = "0.1.0", + .fingerprint = 0xfe9f9e4c76d5f962, + .paths = .{""}, + .dependencies = .{ + .breakpad = .{ + .url = "https://deps.files.ghostty.org/breakpad-b99f444ba5f6b98cac261cbb391d8766b34a5918.tar.gz", + .hash = "N-V-__8AALw2uwF_03u4JRkZwRLc3Y9hakkYV7NKRR9-RIZJ", + .lazy = true, + }, + + .apple_sdk = .{ .path = "../apple-sdk" }, + }, +} |
