zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Mlib/compiler/Maker/Step/Compile.zig | 2+-
Mlib/compiler/configurer.zig | 1+
Mlib/std/Build/Configuration.zig | 3++-
Mlib/std/Build/Step/Compile.zig | 6++++++
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,