build: enable full parallelism when -Dhealed is set

The eowyn.sh script is used in a github workflow, but after
commit 0d56ba3 (build: restore the exercise chain), the github action
will take more time to complete.

Enable full build parallelism, when -Dhealed is true and -Dn is null.
Use the standard CompileStep and RunStep, instead of ZiglingStep.

On my PC, this change reduces the build time by about 30%.
This commit is contained in:
Manlio Perillo 2023-04-08 09:02:38 +02:00
parent b478c1bff4
commit 1cf910fb51

View file

@ -593,6 +593,28 @@ pub fn build(b: *Build) !void {
} }
start_step.dependOn(&prev_step.step); start_step.dependOn(&prev_step.step);
return;
} else if (use_healed) {
const test_step = b.step("test", "Test the healed exercises");
b.default_step = test_step;
for (exercises) |ex| {
const base_name = ex.baseName();
const file_path = std.fs.path.join(b.allocator, &[_][]const u8{
"patches/healed", ex.main_file,
}) catch unreachable;
const build_step = b.addExecutable(.{ .name = base_name, .root_source_file = .{ .path = file_path } });
if (ex.C) {
build_step.linkLibC();
}
build_step.install();
const run_step = build_step.run();
test_step.dependOn(&run_step.step);
}
return; return;
} }
@ -604,7 +626,7 @@ pub fn build(b: *Build) !void {
for (exercises, 0..) |ex, i| { for (exercises, 0..) |ex, i| {
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{
if (use_healed) "patches/healed" else "exercises", ex.main_file, "exercises", ex.main_file,
}) catch unreachable; }) catch unreachable;
const build_step = b.addExecutable(.{ .name = base_name, .root_source_file = .{ .path = file_path } }); const build_step = b.addExecutable(.{ .name = base_name, .root_source_file = .{ .path = file_path } });