From 7b2628c8d65f1f4c2ed8a9367741107b3cb076ba Mon Sep 17 00:00:00 2001 From: Michka Popoff Date: Tue, 14 Feb 2023 23:22:17 +0400 Subject: [PATCH] build.zig: enable headerpad_max_install_names on MacOs Fixes error during packing on MacOS with Homebrew: Error: Failed changing dylib ID of /usr/local/Cellar/fastfec/0.1.9/lib/libfastfec.dylib from @rpath/libfastfec.dylib to /usr/local/opt/fastfec/lib/libfastfec.dylib Error: Failed to fix install linkage and Error: Failed changing install name in /opt/homebrew/Cellar/fastfec/0.1.9/bin/fastfec from /opt/homebrew/opt/pcre/lib/libpcre.1.dylib to @@HOMEBREW_PREFIX@@/opt/pcre/lib/libpcre.1.dylib See https://github.com/ziglang/zig/issues/13388, where this is inspired from --- build.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build.zig b/build.zig index 4836924..04f581b 100644 --- a/build.zig +++ b/build.zig @@ -12,6 +12,11 @@ pub fn linkPcre(vendored_pcre: bool, libExe: *std.build.LibExeObjStep) void { libExe.linkSystemLibrary("libpcre"); } } + if (libExe.target.isDarwin()) { + // useful for package maintainers + // see https://github.com/ziglang/zig/issues/13388 + libExe.headerpad_max_install_names = true; + } } pub fn build(b: *std.build.Builder) !void { @@ -45,6 +50,11 @@ pub fn build(b: *std.build.Builder) !void { // Library build step const fastfec_lib = b.addSharedLibrary("fastfec", null, .unversioned); fastfec_lib.setTarget(target); + if (fastfec_lib.target.isDarwin()) { + // useful for package maintainers + // see https://github.com/ziglang/zig/issues/13388 + fastfec_lib.headerpad_max_install_names = true; + } fastfec_lib.setBuildMode(mode); fastfec_lib.install(); fastfec_lib.linkLibC();