summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlo Cabrera <30379873+carlocab@users.noreply.github.com>2023-02-22 13:51:08 +0800
committerCarlo Cabrera <30379873+carlocab@users.noreply.github.com>2023-02-22 13:51:08 +0800
commit07a13d9c7397c3341f430e1127e7287fe53ba8b9 (patch)
tree2a3fd28e18e3c2dcee4282d2ddce940141d19348
parent54d50e0443218a293990eb4669478d75f1c147ee (diff)
Set `headerpad_max_install_names` on Darwin
This is useful for building binary distributions because it allows references to library dependendencies on the build machine to be rewritten appropriately upon installation on the user's machine. Zig also does this in their `build.zig`: https://github.com/ziglang/zig/blob/b52be973dfb7d1408218b8e75800a2da3dc69108/build.zig#L551-L554
-rw-r--r--build.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index 45bd314..763e4fe 100644
--- a/build.zig
+++ b/build.zig
@@ -10,6 +10,11 @@ pub fn build(b: *std.build.Builder) void {
const exe = b.addExecutable("ncdu", "src/main.zig");
exe.setTarget(target);
exe.setBuildMode(mode);
+ // https://github.com/ziglang/zig/blob/b52be973dfb7d1408218b8e75800a2da3dc69108/build.zig#L551-L554
+ if (exe.target.isDarwin()) {
+ // useful for package maintainers
+ exe.headerpad_max_install_names = true;
+ }
exe.addCSourceFile("src/ncurses_refs.c", &[_][]const u8{});
exe.linkLibC();
exe.linkSystemLibrary("ncursesw");