aboutsummaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-11-02 13:55:24 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-11-03 20:05:32 -0700
commitf8c24c2cd012a93fd005480411bf0936933e2fbb (patch)
treed47f5395d87152d704524bd80e7365c7ba3e10f1 /build.zig
parent1ccc68f307d4a2208118a8798d43119d63b53e05 (diff)
downloadzig-f8c24c2cd012a93fd005480411bf0936933e2fbb.tar.gz
zig-f8c24c2cd012a93fd005480411bf0936933e2fbb.zip
add zig reduce subcommand
Also adds `-Donly-reduce` flag in build.zig which disables LLVM and irrelevant code for faster iteration cycles.
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index aff30e6bd2..5cd2884fdd 100644
--- a/build.zig
+++ b/build.zig
@@ -33,6 +33,7 @@ pub fn build(b: *std.Build) !void {
const skip_install_langref = b.option(bool, "no-langref", "skip copying of langref to the installation prefix") orelse skip_install_lib_files;
const skip_install_autodocs = b.option(bool, "no-autodocs", "skip copying of standard library autodocs to the installation prefix") orelse skip_install_lib_files;
const no_bin = b.option(bool, "no-bin", "skip emitting compiler binary") orelse false;
+ const only_reduce = b.option(bool, "only-reduce", "only build zig reduce") orelse false;
const docgen_exe = b.addExecutable(.{
.name = "docgen",
@@ -193,6 +194,10 @@ pub fn build(b: *std.Build) !void {
};
const exe = addCompilerStep(b, optimize, target);
+ if (only_reduce) {
+ exe.use_llvm = false;
+ exe.use_lld = false;
+ }
exe.strip = strip;
exe.pie = pie;
exe.sanitize_thread = sanitize_thread;
@@ -236,6 +241,7 @@ pub fn build(b: *std.Build) !void {
exe_options.addOption(bool, "force_gpa", force_gpa);
exe_options.addOption(bool, "only_c", only_c);
exe_options.addOption(bool, "only_core_functionality", only_c);
+ exe_options.addOption(bool, "only_reduce", only_reduce);
if (link_libc) {
exe.linkLibC();
@@ -391,6 +397,7 @@ pub fn build(b: *std.Build) !void {
test_cases_options.addOption(bool, "force_gpa", force_gpa);
test_cases_options.addOption(bool, "only_c", only_c);
test_cases_options.addOption(bool, "only_core_functionality", true);
+ test_cases_options.addOption(bool, "only_reduce", false);
test_cases_options.addOption(bool, "enable_qemu", b.enable_qemu);
test_cases_options.addOption(bool, "enable_wine", b.enable_wine);
test_cases_options.addOption(bool, "enable_wasmtime", b.enable_wasmtime);
@@ -549,6 +556,7 @@ fn addWasiUpdateStep(b: *std.Build, version: [:0]const u8) !void {
exe_options.addOption(bool, "enable_tracy_allocation", false);
exe_options.addOption(bool, "value_tracing", false);
exe_options.addOption(bool, "only_core_functionality", true);
+ exe_options.addOption(bool, "only_reduce", false);
const run_opt = b.addSystemCommand(&.{
"wasm-opt",