mirror of
https://codeberg.org/andyscott/ziglings.git
synced 2024-12-22 14:03:10 -05:00
build: make the logo a build step
Currently, the logo is always printed when the build script is executed, resulting in the logo being printed twice with `zig build -h` and `zig build -l`. Make the logo a build step, so that the logo is printed to stderr only when necessary. Closes #211
This commit is contained in:
parent
b75a76d072
commit
dd15cb94fd
1 changed files with 33 additions and 1 deletions
34
build.zig
34
build.zig
|
@ -572,7 +572,9 @@ pub fn build(b: *Builder) !void {
|
||||||
\\
|
\\
|
||||||
;
|
;
|
||||||
const header_step = b.step("info", logo);
|
const header_step = b.step("info", logo);
|
||||||
print("{s}\n", .{logo});
|
|
||||||
|
const logo_step = PrintStep.create(b, logo, std.io.getStdErr());
|
||||||
|
logo_step.step.dependOn(header_step);
|
||||||
|
|
||||||
const verify_all = b.step("ziglings", "Check all ziglings");
|
const verify_all = b.step("ziglings", "Check all ziglings");
|
||||||
verify_all.dependOn(header_step);
|
verify_all.dependOn(header_step);
|
||||||
|
@ -804,3 +806,33 @@ const ZiglingStep = struct {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Print a message to a file.
|
||||||
|
const PrintStep = struct {
|
||||||
|
step: Step,
|
||||||
|
message: []const u8,
|
||||||
|
file: std.fs.File,
|
||||||
|
|
||||||
|
pub fn create(owner: *std.Build, message: []const u8, file: std.fs.File) *PrintStep {
|
||||||
|
const self = owner.allocator.create(PrintStep) catch @panic("OOM");
|
||||||
|
self.* = .{
|
||||||
|
.step = Step.init(.{
|
||||||
|
.id = .custom,
|
||||||
|
.name = "Print",
|
||||||
|
.owner = owner,
|
||||||
|
.makeFn = make,
|
||||||
|
}),
|
||||||
|
.message = message,
|
||||||
|
.file = file,
|
||||||
|
};
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make(step: *Step, prog_node: *std.Progress.Node) !void {
|
||||||
|
_ = prog_node;
|
||||||
|
const p = @fieldParentPtr(PrintStep, "step", step);
|
||||||
|
|
||||||
|
try p.file.writeAll(p.message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue