diff options
Diffstat (limited to 'go/build.zig')
| -rw-r--r-- | go/build.zig | 31 |
1 files changed, 31 insertions, 0 deletions
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); +} |
