A rudimentary lisp-like language
lisp
at main 55 lines 1.4 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("rat_lisp", .{ 8 .root_source_file = b.path("src/root.zig"), 9 .target = target, 10 }); 11 12 const exe = b.addExecutable(.{ 13 .name = "rat_lisp", 14 .root_module = b.createModule(.{ 15 .root_source_file = b.path("src/main.zig"), 16 .target = target, 17 .optimize = optimize, 18 .imports = &.{ 19 .{ .name = "rat_lisp", .module = mod }, 20 }, 21 }), 22 }); 23 24 const clap = b.dependency("clap", .{}); 25 exe.root_module.addImport("clap", clap.module("clap")); 26 27 b.installArtifact(exe); 28 29 const run_step = b.step("run", "Run the app"); 30 31 const run_cmd = b.addRunArtifact(exe); 32 run_step.dependOn(&run_cmd.step); 33 34 run_cmd.step.dependOn(b.getInstallStep()); 35 36 if (b.args) |args| { 37 run_cmd.addArgs(args); 38 } 39 40 const mod_tests = b.addTest(.{ 41 .root_module = mod, 42 }); 43 44 const run_mod_tests = b.addRunArtifact(mod_tests); 45 46 const exe_tests = b.addTest(.{ 47 .root_module = exe.root_module, 48 }); 49 50 const run_exe_tests = b.addRunArtifact(exe_tests); 51 52 const test_step = b.step("test", "Run tests"); 53 test_step.dependOn(&run_mod_tests.step); 54 test_step.dependOn(&run_exe_tests.step); 55}