summaryrefslogtreecommitdiff
path: root/libpanto-c/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'libpanto-c/build.zig')
-rw-r--r--libpanto-c/build.zig11
1 files changed, 9 insertions, 2 deletions
diff --git a/libpanto-c/build.zig b/libpanto-c/build.zig
index 8c3cb8e..2e3160c 100644
--- a/libpanto-c/build.zig
+++ b/libpanto-c/build.zig
@@ -14,8 +14,15 @@ pub fn build(b: *std.Build) void {
});
mod.addImport("panto", panto_dep.module("panto"));
- const lib = b.addLibrary(.{ .name = "panto", .root_module = mod, .linkage = .dynamic });
- lib.rdynamic = true;
+ const linkage = b.option(std.builtin.LinkMode, "linkage", "Library linkage: dynamic (default) or static") orelse .dynamic;
+ const lib = b.addLibrary(.{ .name = "panto", .root_module = mod, .linkage = linkage });
+ if (linkage == .dynamic) {
+ lib.rdynamic = true;
+ } else {
+ // Bundle compiler_rt into the archive so the final consumer link
+ // (e.g. cgo) doesn't need Zig's runtime support library separately.
+ lib.bundle_compiler_rt = true;
+ }
b.installArtifact(lib);
b.installFile("include/panto.h", "include/panto.h");