pkg: replace @cImport with addTranslateC in pkg/

@cImport is going to disappear in Zig 0.17. Its deprecated in Zig 0.16.
Let's remove it now.

Replace @cImport with addTranslateC across pkg/ packages. Each
package now has a c_import.h header that is translated at build
time via addTranslateC and exposed as a "cimport" module import.

Converted packages:
- dcimgui
- fontconfig
- freetype
- glslang
- harfbuzz
- macos
- oniguruma
- opengl
- sentry
- spirv-cross
- wuffs

Omitted:
- gtk4-layer-shell - This has a bit more complexity with how it
  interacts with GTK headers, so I need to consider this a bit more.
- src/ - It'll be cleaner to do this separately.
This commit is contained in:
Mitchell Hashimoto
2026-04-16 21:19:41 -07:00
parent ca7516bea6
commit eccd07f009
149 changed files with 390 additions and 195 deletions

View File

@@ -46,6 +46,23 @@ pub fn build(b: *std.Build) !void {
if (b.lazyDependency("sentry", .{})) |upstream| {
module.addIncludePath(upstream.path("include"));
const tc = b.addTranslateC(.{
.root_source_file = b.path("c_import.h"),
.target = target,
.optimize = optimize,
});
if (target.result.os.tag.isDarwin()) {
const libc = try std.zig.LibCInstallation.findNative(.{
.allocator = b.allocator,
.target = &target.result,
.verbose = false,
});
tc.addSystemIncludePath(.{ .cwd_relative = libc.sys_include_dir.? });
}
tc.addIncludePath(upstream.path("include"));
module.addImport("c", tc.createModule());
lib.addIncludePath(upstream.path("include"));
lib.addIncludePath(upstream.path("src"));
lib.addCSourceFiles(.{

View File

@@ -1,3 +0,0 @@
pub const c = @cImport({
@cInclude("sentry.h");
});

1
pkg/sentry/c_import.h Normal file
View File

@@ -0,0 +1 @@
#include "sentry.h"

View File

@@ -1,6 +1,6 @@
const std = @import("std");
const assert = std.debug.assert;
const c = @import("c.zig").c;
const c = @import("c");
const Value = @import("value.zig").Value;
/// sentry_envelope_t

View File

@@ -1,4 +1,4 @@
pub const c = @import("c.zig").c;
pub const c = @import("c");
const transport = @import("transport.zig");

View File

@@ -1,6 +1,6 @@
const std = @import("std");
const assert = std.debug.assert;
const c = @import("c.zig").c;
const c = @import("c");
const Envelope = @import("envelope.zig").Envelope;
/// sentry_transport_t

View File

@@ -1,6 +1,6 @@
const std = @import("std");
const assert = std.debug.assert;
const c = @import("c.zig").c;
const c = @import("c");
/// sentry_uuid_t
pub const UUID = struct {

View File

@@ -1,6 +1,6 @@
const std = @import("std");
const assert = std.debug.assert;
const c = @import("c.zig").c;
const c = @import("c");
const Level = @import("level.zig").Level;
/// sentry_value_t