A SpaceTraders Agent
at main 2.4 kB view raw
1const std = @import("std"); 2const Build = std.Build; 3 4pub fn build(b: *Build) void { 5 const target = b.standardTargetOptions(.{}); 6 const optimize = b.standardOptimizeOption(.{}); 7 8 const options = b.addOptions(); 9 10 const known_folders = b.dependency("known_folders", .{}).module("known-folders"); 11 12 const meta = b.createModule(.{ 13 .root_source_file = b.path("src/meta/root.zig"), 14 .target = target, 15 .optimize = optimize, 16 }); 17 18 const st = b.addModule("st", .{ 19 .root_source_file = b.path("src/st/root.zig"), 20 .target = target, 21 .optimize = optimize, 22 .imports = &.{ 23 .{ .name = "meta", .module = meta }, 24 }, 25 }); 26 27 const agent = b.addModule("agent", .{ 28 .root_source_file = b.path("src/agent/root.zig"), 29 .target = target, 30 .optimize = optimize, 31 .imports = &.{ 32 .{ .name = "known-folders", .module = known_folders }, 33 // Modules 34 .{ .name = "st", .module = st }, 35 .{ .name = "meta", .module = meta }, 36 }, 37 }); 38 39 const space = b.createModule(.{ 40 .root_source_file = b.path("src/main.zig"), 41 .target = target, 42 .optimize = optimize, 43 .imports = &.{ 44 .{ .name = "known-folders", .module = known_folders }, 45 // Modules 46 .{ .name = "st", .module = st }, 47 .{ .name = "agent", .module = agent }, 48 .{ .name = "meta", .module = meta }, 49 }, 50 }); 51 52 space.addOptions("build-options", options); 53 54 const exe = b.addExecutable(.{ 55 .root_module = space, 56 .name = "space", 57 }); 58 b.installArtifact(exe); 59 60 const run_cmd = b.addRunArtifact(exe); 61 run_cmd.step.dependOn(b.getInstallStep()); 62 63 if (b.args) |args| run_cmd.addArgs(args); 64 65 const run_step = b.step("run", "Run the app"); 66 run_step.dependOn(&run_cmd.step); 67 68 const test_step = b.step("test", "Run tests"); 69 addTest(b, test_step, "meta tests", meta); 70 addTest(b, test_step, "st tests", st); 71 addTest(b, test_step, "agent tests", agent); 72} 73 74fn addTest(b: *Build, step: *Build.Step, name: []const u8, root_module: *Build.Module) void { 75 const t = b.addTest(.{ 76 .name = name, 77 .root_module = root_module, 78 }); 79 const run_test = b.addRunArtifact(t); 80 step.dependOn(&run_test.step); 81}