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 exe2 = b.addExecutable(.{
10 .name = "generate",
11 .root_module = b.createModule(.{
12 .root_source_file = b.path("generate.zig"),
13 .target = target,
14 .optimize = mode,
15 }),
16 });
17 deps.addAllTo(exe2);
18 exe2.root_module.link_libc = true;
19 exe2.use_llvm = !disable_llvm;
20 exe2.use_lld = !disable_llvm;
21 b.installArtifact(exe2);
22
23 const run_cmd2 = b.addRunArtifact(exe2);
24 run_cmd2.step.dependOn(b.getInstallStep());
25 if (b.args) |args| {
26 run_cmd2.addArgs(args);
27 }
28
29 const run_step2 = b.step("gen", "generate the list");
30 run_step2.dependOn(&run_cmd2.step);
31
32 const tests = b.addTest(.{
33 .root_module = b.createModule(.{
34 .root_source_file = b.path("test.zig"),
35 .target = target,
36 .optimize = mode,
37 }),
38 });
39 deps.addAllTo(tests);
40 tests.use_llvm = !disable_llvm;
41 tests.use_lld = !disable_llvm;
42 b.getInstallStep().dependOn(&tests.step);
43
44 const test_step = b.step("test", "Run all library tests");
45 const tests_run = b.addRunArtifact(tests);
46 tests_run.setCwd(b.path("."));
47 tests_run.has_side_effects = true;
48 test_step.dependOn(&tests_run.step);
49 test_step.dependOn(&exe2.step);
50}