diff options
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 27 |
1 files changed, 27 insertions, 0 deletions
| @@ -10,7 +10,9 @@ pub fn build(b: *Builder) void { | |||
| 10 | const example_step = b.step("examples", "Build examples"); | 10 | const example_step = b.step("examples", "Build examples"); |
| 11 | inline for ([_][]const u8{ | 11 | inline for ([_][]const u8{ |
| 12 | "comptime-clap", | 12 | "comptime-clap", |
| 13 | //"comptime-clap-error", | ||
| 13 | "streaming-clap", | 14 | "streaming-clap", |
| 15 | "help", | ||
| 14 | }) |example_name| { | 16 | }) |example_name| { |
| 15 | const example = b.addExecutable(example_name, "example/" ++ example_name ++ ".zig"); | 17 | const example = b.addExecutable(example_name, "example/" ++ example_name ++ ".zig"); |
| 16 | example.addPackagePath("clap", "clap.zig"); | 18 | example.addPackagePath("clap", "clap.zig"); |
| @@ -31,13 +33,38 @@ pub fn build(b: *Builder) void { | |||
| 31 | test_all_step.dependOn(test_step); | 33 | test_all_step.dependOn(test_step); |
| 32 | } | 34 | } |
| 33 | 35 | ||
| 36 | const readme_step = b.step("test", "Remake README."); | ||
| 37 | const readme = readMeStep(b); | ||
| 38 | readme.dependOn(example_step); | ||
| 39 | readme_step.dependOn(readme); | ||
| 40 | |||
| 34 | const all_step = b.step("all", "Build everything and runs all tests"); | 41 | const all_step = b.step("all", "Build everything and runs all tests"); |
| 35 | all_step.dependOn(test_all_step); | 42 | all_step.dependOn(test_all_step); |
| 36 | all_step.dependOn(example_step); | 43 | all_step.dependOn(example_step); |
| 44 | all_step.dependOn(readme_step); | ||
| 37 | 45 | ||
| 38 | b.default_step.dependOn(all_step); | 46 | b.default_step.dependOn(all_step); |
| 39 | } | 47 | } |
| 40 | 48 | ||
| 49 | fn readMeStep(b: *Builder) *std.build.Step { | ||
| 50 | const s = b.allocator.create(std.build.Step) catch unreachable; | ||
| 51 | s.* = std.build.Step.init("ReadMeStep", b.allocator, struct { | ||
| 52 | fn make(step: *std.build.Step) anyerror!void { | ||
| 53 | @setEvalBranchQuota(10000); | ||
| 54 | const file = try std.fs.File.openWrite("README.md"); | ||
| 55 | const stream = &file.outStream().stream; | ||
| 56 | try stream.print( | ||
| 57 | @embedFile("example/README.md.template"), | ||
| 58 | @embedFile("example/streaming-clap.zig"), | ||
| 59 | @embedFile("example/comptime-clap.zig"), | ||
| 60 | @embedFile("example/comptime-clap-error.zig"), | ||
| 61 | @embedFile("example/help.zig"), | ||
| 62 | ); | ||
| 63 | } | ||
| 64 | }.make); | ||
| 65 | return s; | ||
| 66 | } | ||
| 67 | |||
| 41 | fn modeToString(mode: Mode) []const u8 { | 68 | fn modeToString(mode: Mode) []const u8 { |
| 42 | return switch (mode) { | 69 | return switch (mode) { |
| 43 | Mode.Debug => "debug", | 70 | Mode.Debug => "debug", |