diff options
| author | t <t@tjp.lol> | 2026-07-07 11:26:32 -0600 |
|---|---|---|
| committer | t <t@tjp.lol> | 2026-07-07 11:26:45 -0600 |
| commit | f83578fdc9264019a1a1cef8c5484a161167d3dd (patch) | |
| tree | 888f11767f944d61e5ca8eb92fa1b2dba295a4b8 /libpanto-c/build.zig | |
initial commit, moved libpanto over from the pantograph repo
Diffstat (limited to 'libpanto-c/build.zig')
| -rw-r--r-- | libpanto-c/build.zig | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libpanto-c/build.zig b/libpanto-c/build.zig new file mode 100644 index 0000000..2e3160c --- /dev/null +++ b/libpanto-c/build.zig @@ -0,0 +1,33 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const panto_dep = b.dependency("panto", .{ .target = target, .optimize = optimize }); + + const mod = b.createModule(.{ + .root_source_file = b.path("src/lib.zig"), + .target = target, + .optimize = optimize, + .link_libc = true, + }); + mod.addImport("panto", panto_dep.module("panto")); + + 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"); + + const unit_tests = b.addTest(.{ .name = "panto-c-tests", .root_module = mod }); + const run_unit_tests = b.addRunArtifact(unit_tests); + const test_step = b.step("test", "Run unit tests"); + test_step.dependOn(&run_unit_tests.step); +} |
