aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.zig6
-rw-r--r--std/build.zig7
2 files changed, 12 insertions, 1 deletions
diff --git a/build.zig b/build.zig
index c2a20015a7..fc460df129 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 a80580a383..743535eb10 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();
}