build: simplify the code when solving all the exercises

Initialize the first step in the chain to the header_step, instead of
making the code more complex handling the first step as a special case
in the for loop.
This commit is contained in:
Manlio Perillo 2023-04-10 21:02:54 +02:00
parent be782af7a3
commit 1ee8aabcf3

View file

@ -643,14 +643,12 @@ pub fn build(b: *Build) !void {
} }
const ziglings_step = b.step("ziglings", "Check all ziglings"); const ziglings_step = b.step("ziglings", "Check all ziglings");
ziglings_step.dependOn(&header_step.step);
b.default_step = ziglings_step; b.default_step = ziglings_step;
// Don't use the "multi-object for loop" syntax, in order to avoid a syntax // Don't use the "multi-object for loop" syntax, in order to avoid a syntax
// error with old Zig compilers. // error with old Zig compilers.
var prev_step: *Step = undefined; var prev_step = &header_step.step;
for (exercises) |ex| { for (exercises) |ex| {
const n = ex.number();
const base_name = ex.baseName(); const base_name = ex.baseName();
const file_path = std.fs.path.join(b.allocator, &[_][]const u8{ const file_path = std.fs.path.join(b.allocator, &[_][]const u8{
"exercises", ex.main_file, "exercises", ex.main_file,
@ -660,13 +658,9 @@ pub fn build(b: *Build) !void {
build_step.install(); build_step.install();
const verify_stepn = ZiglingStep.create(b, ex, use_healed); const verify_stepn = ZiglingStep.create(b, ex, use_healed);
if (n == 1) { verify_stepn.step.dependOn(prev_step);
prev_step = &verify_stepn.step;
} else {
verify_stepn.step.dependOn(prev_step);
prev_step = &verify_stepn.step; prev_step = &verify_stepn.step;
}
} }
ziglings_step.dependOn(prev_step); ziglings_step.dependOn(prev_step);