1const std = @import("std");
2const deps = @import("./deps.zig");
3
4pub fn build(b: *std.Build) void {
5 const target = b.standardTargetOptions(.{});
6 const mode = b.option(std.builtin.OptimizeMode, "mode", "") orelse .Debug;
7 const disable_llvm = b.option(bool, "disable_llvm", "use the non-llvm zig codegen") orelse false;
8
9 const t = b.addTest(.{
10 .root_module = b.createModule(.{
11 .root_source_file = b.path("test.zig"),
12 .target = target,
13 .optimize = mode,
14 }),
15 });
16 deps.addAllTo(t);
17 t.use_llvm = !disable_llvm;
18 t.use_lld = !disable_llvm;
19 b.getInstallStep().dependOn(&t.step);
20
21 const run_t = b.addRunArtifact(t);
22 run_t.setCwd(b.path("."));
23 run_t.has_side_effects = true;
24
25 const t_step = b.step("test", "Run all library tests");
26 t_step.dependOn(&run_t.step);
27
28 //
29
30 const g = b.addExecutable(.{
31 .name = "generate",
32 .root_module = b.addModule("root", .{
33 .root_source_file = b.path("./generate.zig"),
34 .target = target,
35 .optimize = mode,
36 .link_libc = true,
37 }),
38 });
39 deps.addAllTo(g);
40 g.use_llvm = !disable_llvm;
41 g.use_lld = !disable_llvm;
42 b.getInstallStep().dependOn(&g.step);
43
44 const run_g = b.addRunArtifact(g);
45 run_g.setCwd(b.path("."));
46 run_g.has_side_effects = true;
47
48 const g_step = b.step("generate", "");
49 g_step.dependOn(&run_g.step);
50}