From 63db580e2ad2b1e77533d4872456600c13796361 Mon Sep 17 00:00:00 2001 From: Jess Sullivan Date: Sat, 28 Mar 2026 22:29:12 -0400 Subject: [PATCH] Use linkSystemLibrary instead of hardcoded include paths Replace distro-specific hardcoded paths (/usr/lib/x86_64-linux-gnu/...) with linkSystemLibrary("libsecret-1") and linkSystemLibrary("glib-2.0") which uses pkg-config to find headers on any Linux distro. --- build.zig | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/build.zig b/build.zig index 5bcfbbb..07fc74f 100644 --- a/build.zig +++ b/build.zig @@ -12,18 +12,17 @@ pub fn build(b: *std.Build) void { const resolved_target = root_module.resolved_target.?; - // Linux: compile C bridge for libsecret varargs + add include paths + // Linux: compile C bridge for libsecret varargs + link system libs if (resolved_target.result.os.tag == .linux) { root_module.link_libc = true; root_module.addCSourceFile(.{ .file = b.path("src/libsecret_bridge.c"), .flags = &.{ "-std=c99", "-Wall" }, }); - // System include paths for libsecret + glib - root_module.addSystemIncludePath(.{ .cwd_relative = "/usr/include/libsecret-1" }); - root_module.addSystemIncludePath(.{ .cwd_relative = "/usr/include/glib-2.0" }); - root_module.addSystemIncludePath(.{ .cwd_relative = "/usr/lib/x86_64-linux-gnu/glib-2.0/include" }); - root_module.addSystemIncludePath(.{ .cwd_relative = "/usr/lib/aarch64-linux-gnu/glib-2.0/include" }); + // Use pkg-config to find libsecret and glib headers/libs + // (works on Debian, Fedora, Arch, NixOS, etc.) + root_module.linkSystemLibrary("libsecret-1", .{}); + root_module.linkSystemLibrary("glib-2.0", .{}); // Bridge header for zig @cImport root_module.addIncludePath(b.path("src")); }