summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2024-08-13 20:36:31 -0500
committerNic Gaffney <gaffney_nic@protonmail.com>2024-08-13 20:36:31 -0500
commit760a9246618862b56bafe3dd5d95a77fdd668a6c (patch)
tree9e85eec354e98f6e6ab916956266438d54780573 /build.zig
parentb1ad4a1c280d25f92fdb1103edf2faa5e3e1daac (diff)
downloadcalico-760a9246618862b56bafe3dd5d95a77fdd668a6c.tar.gz
Unit tests now pass
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig54
1 files changed, 23 insertions, 31 deletions
diff --git a/build.zig b/build.zig
index e8b9c5e..4606ade 100644
--- a/build.zig
+++ b/build.zig
@@ -13,7 +13,8 @@ pub fn build(b: *std.Build) !void {
});
const llvm = b.dependency("llvm-zig", .{});
- exe.root_module.addImport("llvm", llvm.module("llvm"));
+ _ = try b.modules.put("llvm", llvm.module("llvm"));
+ exe.root_module.addImport("llvm", b.modules.get("llvm").?);
b.installArtifact(exe);
@@ -28,38 +29,29 @@ pub fn build(b: *std.Build) !void {
const run_step = b.step("run", "Run the compiler");
run_step.dependOn(&run_cmd.step);
- const exe_unit_tests = b.addTest(.{
- .root_source_file = b.path("src/main.zig"),
- .target = target,
- .optimize = optimize,
- });
-
- const token_unit_tests = b.addTest(.{
- .root_source_file = b.path("src/tokenize.zig"),
- .target = target,
- .optimize = optimize,
- });
-
- const parse_unit_tests = b.addTest(.{
- .root_source_file = b.path("src/parser.zig"),
- .target = target,
- .optimize = optimize,
- });
+ const test_step = b.step("test", "Run unit tests");
+ for ([_][]const u8{
+ "src/main.zig",
+ "src/tokenize.zig",
+ "src/parser.zig",
+ "src/codegen.zig",
+ }) |file|
+ unit_test(b, target, optimize, test_step, file);
+}
- const codegen_unit_tests = b.addTest(.{
- .root_source_file = b.path("src/codegen.zig"),
+fn unit_test(
+ b: *std.Build,
+ target: std.Build.ResolvedTarget,
+ optimize: std.builtin.OptimizeMode,
+ test_step: *std.Build.Step,
+ fname: []const u8,
+) void {
+ const unit = b.addTest(.{
+ .root_source_file = b.path(fname),
.target = target,
.optimize = optimize,
});
-
- const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests);
- const run_token_unit_tests = b.addRunArtifact(token_unit_tests);
- const run_parse_unit_tests = b.addRunArtifact(parse_unit_tests);
- const run_codegen_unit_tests = b.addRunArtifact(codegen_unit_tests);
-
- const test_step = b.step("test", "Run unit tests");
- test_step.dependOn(&run_exe_unit_tests.step);
- test_step.dependOn(&run_token_unit_tests.step);
- test_step.dependOn(&run_parse_unit_tests.step);
- test_step.dependOn(&run_codegen_unit_tests.step);
+ const unit_tests = b.addRunArtifact(unit);
+ test_step.dependOn(&unit_tests.step);
+ unit.root_module.addImport("llvm", b.modules.get("llvm").?);
}