a lisp-like language, loosely based on John N. Shutt's "Kernel" language
at main 52 lines 1.3 kB view raw
1const std = @import("std"); 2 3pub fn build(b: *std.Build) void { 4 const target = b.standardTargetOptions(.{}); 5 const optimize = b.standardOptimizeOption(.{}); 6 7 const mod = b.addModule("rats", .{ 8 .root_source_file = b.path("src/root.zig"), 9 .target = target, 10 }); 11 12 const exe = b.addExecutable(.{ 13 .name = "rats", 14 .root_module = b.createModule(.{ 15 .root_source_file = b.path("src/main.zig"), 16 .target = target, 17 .optimize = optimize, 18 .imports = &.{ 19 .{ .name = "rats", .module = mod }, 20 }, 21 }), 22 }); 23 24 b.installArtifact(exe); 25 26 const run_step = b.step("run", "Run the app"); 27 28 const run_cmd = b.addRunArtifact(exe); 29 run_step.dependOn(&run_cmd.step); 30 31 run_cmd.step.dependOn(b.getInstallStep()); 32 33 if (b.args) |args| { 34 run_cmd.addArgs(args); 35 } 36 37 const mod_tests = b.addTest(.{ 38 .root_module = mod, 39 }); 40 41 const run_mod_tests = b.addRunArtifact(mod_tests); 42 43 const exe_tests = b.addTest(.{ 44 .root_module = exe.root_module, 45 }); 46 47 const run_exe_tests = b.addRunArtifact(exe_tests); 48 49 const test_step = b.step("test", "Run tests"); 50 test_step.dependOn(&run_mod_tests.step); 51 test_step.dependOn(&run_exe_tests.step); 52}