844c9370bc
The importing of builtin was already fixed, so the latest commit applied this fix again, which caused problems
72 lines
2.4 KiB
Zig
72 lines
2.4 KiB
Zig
const std = @import("std");
|
|
|
|
const Builder = std.build.Builder;
|
|
|
|
pub fn build(b: *Builder) void {
|
|
const mode = b.standardReleaseOptions();
|
|
const target = b.standardTargetOptions(.{});
|
|
|
|
const test_all_step = b.step("test", "Run all tests in all modes.");
|
|
inline for (@typeInfo(std.builtin.Mode).Enum.fields) |field| {
|
|
const test_mode = @field(std.builtin.Mode, field.name);
|
|
const mode_str = @tagName(test_mode);
|
|
|
|
const tests = b.addTest("clap.zig");
|
|
tests.setBuildMode(test_mode);
|
|
tests.setTarget(target);
|
|
|
|
const test_step = b.step("test-" ++ mode_str, "Run all tests in " ++ mode_str ++ ".");
|
|
test_step.dependOn(&tests.step);
|
|
test_all_step.dependOn(test_step);
|
|
}
|
|
|
|
const example_step = b.step("examples", "Build examples");
|
|
inline for (.{
|
|
"simple",
|
|
"simple-ex",
|
|
//"simple-error",
|
|
"streaming-clap",
|
|
"help",
|
|
"usage",
|
|
}) |example_name| {
|
|
const example = b.addExecutable(example_name, "example/" ++ example_name ++ ".zig");
|
|
example.addPackagePath("clap", "clap.zig");
|
|
example.setBuildMode(mode);
|
|
example.setTarget(target);
|
|
example.install();
|
|
example_step.dependOn(&example.step);
|
|
}
|
|
|
|
const readme_step = b.step("readme", "Remake README.");
|
|
const readme = readMeStep(b);
|
|
readme.dependOn(example_step);
|
|
readme_step.dependOn(readme);
|
|
|
|
const all_step = b.step("all", "Build everything and runs all tests");
|
|
all_step.dependOn(test_all_step);
|
|
all_step.dependOn(example_step);
|
|
all_step.dependOn(readme_step);
|
|
|
|
b.default_step.dependOn(all_step);
|
|
}
|
|
|
|
fn readMeStep(b: *Builder) *std.build.Step {
|
|
const s = b.allocator.create(std.build.Step) catch unreachable;
|
|
s.* = std.build.Step.init(.custom, "ReadMeStep", b.allocator, struct {
|
|
fn make(step: *std.build.Step) anyerror!void {
|
|
@setEvalBranchQuota(10000);
|
|
_ = step;
|
|
const file = try std.fs.cwd().createFile("README.md", .{});
|
|
const stream = file.writer();
|
|
try stream.print(@embedFile("example/README.md.template"), .{
|
|
@embedFile("example/simple.zig"),
|
|
@embedFile("example/simple-error.zig"),
|
|
@embedFile("example/streaming-clap.zig"),
|
|
@embedFile("example/help.zig"),
|
|
@embedFile("example/usage.zig"),
|
|
});
|
|
}
|
|
}.make);
|
|
return s;
|
|
}
|