From 87046ba0fc5b9c3be61d23bd8cc2bc6fa84577ba Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 20 Apr 2026 14:07:29 +0200 Subject: feat(go): bindings --- go/build.zig | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 go/build.zig (limited to 'go/build.zig') diff --git a/go/build.zig b/go/build.zig new file mode 100644 index 0000000..5e6b59d --- /dev/null +++ b/go/build.zig @@ -0,0 +1,31 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const typdown = b.dependency("typdown", .{ + .optimize = optimize, + .target = target, + }).module("typdown"); + const lib = b.addLibrary(.{ + .name = "typdown", + .root_module = typdown, + .linkage = .static, + }); + const install = b.addInstallArtifact(lib, .{}); + // when emitting headers will be fixed + // currently, we have to use a symlink/copy to get it + //installed.emitted_h = lib.getEmittedH(); + b.getInstallStep().dependOn(&install.step); + + var flags = try std.ArrayList(u8).initCapacity(b.allocator, 2); + try flags.appendSlice(b.allocator, "-linkmode external -extldflags -static"); + if (optimize != .Debug) try flags.appendSlice(b.allocator, " -s"); + const go_build = b.addSystemCommand(&[_][]const u8{ + "go", "build", + "-ldflags", try flags.toOwnedSlice(b.allocator), + ".", + }); + b.getInstallStep().dependOn(&go_build.step); +} -- cgit v1.2.3