2021-08-27 17:03:13 +02:00
|
|
|
const std = @import("std");
|
|
|
|
|
2024-01-04 22:48:39 +01:00
|
|
|
pub fn build(b: *std.Build) void {
|
2023-02-06 19:24:04 +01:00
|
|
|
const optimize = b.standardOptimizeOption(.{});
|
2022-02-02 00:33:29 +01:00
|
|
|
const target = b.standardTargetOptions(.{});
|
|
|
|
|
2024-01-04 22:48:39 +01:00
|
|
|
const args_mod = b.addModule("args", .{
|
2024-05-17 20:40:50 +02:00
|
|
|
.root_source_file = b.path("args.zig"),
|
2024-01-04 22:48:39 +01:00
|
|
|
});
|
2023-02-06 19:24:04 +01:00
|
|
|
|
2024-03-19 01:09:35 +01:00
|
|
|
const main_tests = b.addTest(.{
|
2024-05-17 20:40:50 +02:00
|
|
|
.root_source_file = b.path("args.zig"),
|
2023-02-06 19:24:04 +01:00
|
|
|
.optimize = optimize,
|
|
|
|
.target = target,
|
|
|
|
});
|
2021-08-27 17:03:13 +02:00
|
|
|
|
2024-03-19 01:09:35 +01:00
|
|
|
const run_main_tests = b.addRunArtifact(main_tests);
|
|
|
|
|
2022-02-05 19:27:23 +01:00
|
|
|
// Standard demo
|
2021-08-27 17:03:13 +02:00
|
|
|
|
2023-02-06 19:24:04 +01:00
|
|
|
const demo_exe = b.addExecutable(.{
|
|
|
|
.name = "demo",
|
2024-05-17 20:40:50 +02:00
|
|
|
.root_source_file = b.path("demo.zig"),
|
2023-02-06 19:24:04 +01:00
|
|
|
.optimize = optimize,
|
|
|
|
.target = target,
|
|
|
|
});
|
2024-01-04 22:48:39 +01:00
|
|
|
demo_exe.root_module.addImport("args", args_mod);
|
2022-02-05 19:27:23 +01:00
|
|
|
|
2023-04-17 06:41:25 +02:00
|
|
|
const run_demo = b.addRunArtifact(demo_exe);
|
2022-02-05 19:27:23 +01:00
|
|
|
run_demo.addArgs(&[_][]const u8{
|
2021-08-27 17:03:13 +02:00
|
|
|
"--output", "demo", "--with-offset", "--signed_number=-10", "--unsigned_number", "20", "--mode", "slow", "help", "this", "is", "borked",
|
|
|
|
});
|
|
|
|
|
2022-02-05 19:27:23 +01:00
|
|
|
// Demo with verbs
|
|
|
|
|
2023-02-06 19:24:04 +01:00
|
|
|
const demo_verb_exe = b.addExecutable(.{
|
|
|
|
.name = "demo_verb",
|
2024-05-17 20:40:50 +02:00
|
|
|
.root_source_file = b.path("demo_verb.zig"),
|
2023-02-06 19:24:04 +01:00
|
|
|
.optimize = optimize,
|
|
|
|
.target = target,
|
|
|
|
});
|
2024-01-04 22:48:39 +01:00
|
|
|
demo_verb_exe.root_module.addImport("args", args_mod);
|
2022-02-05 19:27:23 +01:00
|
|
|
|
2023-04-17 06:41:25 +02:00
|
|
|
const run_demo_verb_1 = b.addRunArtifact(demo_verb_exe);
|
2022-02-05 19:27:23 +01:00
|
|
|
run_demo_verb_1.addArgs(&[_][]const u8{
|
|
|
|
"compact", "--host=localhost", "-p", "4030", "--mode", "fast", "help", "this", "is", "borked",
|
|
|
|
});
|
2023-04-17 06:41:25 +02:00
|
|
|
const run_demo_verb_2 = b.addRunArtifact(demo_verb_exe);
|
2022-02-05 19:27:23 +01:00
|
|
|
run_demo_verb_2.addArgs(&[_][]const u8{
|
|
|
|
"reload", "-f",
|
|
|
|
});
|
2023-04-17 06:41:25 +02:00
|
|
|
const run_demo_verb_3 = b.addRunArtifact(demo_verb_exe);
|
2022-08-14 21:32:41 +02:00
|
|
|
run_demo_verb_3.addArgs(&[_][]const u8{
|
|
|
|
"forward",
|
|
|
|
});
|
2023-04-17 06:41:25 +02:00
|
|
|
const run_demo_verb_4 = b.addRunArtifact(demo_verb_exe);
|
2022-08-14 21:32:41 +02:00
|
|
|
run_demo_verb_4.addArgs(&[_][]const u8{
|
|
|
|
"zero-sized",
|
|
|
|
});
|
2022-02-05 19:27:23 +01:00
|
|
|
|
2021-08-27 17:03:13 +02:00
|
|
|
const test_step = b.step("test", "Runs the test suite.");
|
2024-03-19 01:09:35 +01:00
|
|
|
test_step.dependOn(&run_main_tests.step);
|
2022-02-05 19:27:23 +01:00
|
|
|
test_step.dependOn(&run_demo.step);
|
|
|
|
test_step.dependOn(&run_demo_verb_1.step);
|
|
|
|
test_step.dependOn(&run_demo_verb_2.step);
|
2022-08-14 21:32:41 +02:00
|
|
|
test_step.dependOn(&run_demo_verb_3.step);
|
|
|
|
test_step.dependOn(&run_demo_verb_4.step);
|
2021-08-27 17:03:13 +02:00
|
|
|
}
|