commit 431092fa612ca193cff56fd3430ac037ff70102b (tree)
parent 1f43e049d0d46c14ce5d598f1b6587d2c043b82c
Author: Mason Remaley <mason@gamesbymason.com>
Date: Tue, 9 Jun 2026 15:33:35 -0700
Adds a compile step option to toggle incremental compilation
Diffstat:
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/compiler/Maker/Step/Compile.zig b/lib/compiler/Maker/Step/Compile.zig
@@ -861,7 +861,7 @@ fn lowerZigArgs(
"--error-limit", try allocPrint(arena, "{d}", .{err_limit}),
};
- try addFlag(gpa, zig_args, "incremental", graph.incremental);
+ try addFlag(gpa, zig_args, "incremental", conf_comp.flags4.incremental.toBool() orelse graph.incremental);
try zig_args.append(gpa, "--listen=-");
diff --git a/lib/compiler/configurer.zig b/lib/compiler/configurer.zig
@@ -797,6 +797,7 @@ fn serialize(b: *std.Build, wc: *Configuration.Wip, writer: *Io.Writer) !void {
.generated_llvm_bc = c.generated_llvm_bc != .none,
.generated_llvm_ir = c.generated_llvm_ir != .none,
.generated_h = c.generated_h != .none,
+ .incremental = .init(c.incremental),
},
.root_module = try s.addModule(c.root_module),
.root_name = try wc.addString(c.name),
diff --git a/lib/std/Build/Configuration.zig b/lib/std/Build/Configuration.zig
@@ -1016,7 +1016,8 @@ pub const Step = extern struct {
generated_llvm_bc: bool,
generated_llvm_ir: bool,
generated_h: bool,
- _: u9 = 0,
+ incremental: DefaultingBool,
+ _: u7 = 0,
};
pub fn isDynamicLibrary(compile: *const Compile) bool {
diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
@@ -234,6 +234,12 @@ is_linking_libcpp: bool = false,
/// builtin fuzzer, see the `fuzz` flag in `Module`.
sanitize_coverage_trace_pc_guard: ?bool = null,
+/// Enable or disable incremental compilation.
+///
+/// Incremental compilation reduces compile time by mutating an existing build artifact. Non-
+/// incremental compilation is slower but preserves previous build artifacts.
+incremental: ?bool = null,
+
emit_directory: Configuration.OptionalGeneratedFileIndex = .none,
generated_docs: Configuration.OptionalGeneratedFileIndex = .none,
generated_asm: Configuration.OptionalGeneratedFileIndex = .none,