From a983a0a59b348a885f24656a8646707554170574 Mon Sep 17 00:00:00 2001 From: Greg V Date: Wed, 17 Oct 2018 22:18:50 +0300 Subject: [PATCH] Add /usr/local/lib path for libxml2 and link libc++ on FreeBSD --- build.zig | 6 +++++- std/build.zig | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index c2a20015a..fc460df12 100644 --- a/build.zig +++ b/build.zig @@ -284,7 +284,7 @@ fn configureStage2(b: *Builder, exe: var, ctx: Context) !void { exe.addObjectFile(libstdcxx_path); exe.linkSystemLibrary("pthread"); - } else if (exe.target.isDarwin()) { + } else if (exe.target.isDarwin() or exe.target.isFreeBSD()) { exe.linkSystemLibrary("c++"); } @@ -293,6 +293,10 @@ fn configureStage2(b: *Builder, exe: var, ctx: Context) !void { } if (exe.target.getOs() != builtin.Os.windows) { + if (exe.target.isFreeBSD()) { + exe.addLibPath("/usr/local/lib"); + // TODO use pkg-config + } exe.linkSystemLibrary("xml2"); } exe.linkSystemLibrary("c"); diff --git a/std/build.zig b/std/build.zig index a80580a38..743535eb1 100644 --- a/std/build.zig +++ b/std/build.zig @@ -795,6 +795,13 @@ pub const Target = union(enum).{ }; } + pub fn isFreeBSD(self: *const Target) bool { + return switch (self.getOs()) { + builtin.Os.freebsd => true, + else => false, + }; + } + pub fn wantSharedLibSymLinks(self: *const Target) bool { return !self.isWindows(); }