summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorGravatar Jimmi HC2019-06-21 19:15:32 +0200
committerGravatar Jimmi HC2019-06-21 19:15:32 +0200
commit56e7be2835311888ef43f403e5d6bc2118c953fe (patch)
treea700e966b79ec441f8936c667bd325e37c4a61dc /build.zig
parentupdated to newest version of zig (diff)
downloadzig-clap-56e7be2835311888ef43f403e5d6bc2118c953fe.tar.gz
zig-clap-56e7be2835311888ef43f403e5d6bc2118c953fe.tar.xz
zig-clap-56e7be2835311888ef43f403e5d6bc2118c953fe.zip
Embed examples in README during build
fixes #11
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index cbf8214..ec8579b 100644
--- a/build.zig
+++ b/build.zig
@@ -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
49fn 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
41fn modeToString(mode: Mode) []const u8 { 68fn modeToString(mode: Mode) []const u8 {
42 return switch (mode) { 69 return switch (mode) {
43 Mode.Debug => "debug", 70 Mode.Debug => "debug",