diff --git a/CMakeLists.txt b/CMakeLists.txt index dd15481cff7c..99aad3b8a998 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -810,9 +810,9 @@ endif() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(ZIG_RELEASE_ARG "") elseif("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") - set(ZIG_RELEASE_ARG -Drelease) + set(ZIG_RELEASE_ARG -Doptimize=ReleaseFast) else() - set(ZIG_RELEASE_ARG -Drelease -Dstrip) + set(ZIG_RELEASE_ARG -Doptimize=ReleaseFast -Dstrip) endif() if(ZIG_NO_LIB) set(ZIG_NO_LIB_ARG "-Dno-lib") diff --git a/build.zig b/build.zig index 04f1eed6b5c4..f6682e848d74 100644 --- a/build.zig +++ b/build.zig @@ -13,7 +13,6 @@ const zig_version = std.builtin.Version{ .major = 0, .minor = 11, .patch = 0 }; const stack_size = 32 * 1024 * 1024; pub fn build(b: *std.Build) !void { - const release = b.option(bool, "release", "Build in release mode") orelse false; const only_c = b.option(bool, "only-c", "Translate the Zig compiler to C code, with only the C backend enabled") orelse false; const target = t: { var default_target: std.zig.CrossTarget = .{}; @@ -22,10 +21,10 @@ pub fn build(b: *std.Build) !void { } break :t b.standardTargetOptions(.{ .default_target = default_target }); }; - const optimize: std.builtin.OptimizeMode = if (release) switch (target.getCpuArch()) { - .wasm32 => .ReleaseSmall, - else => .ReleaseFast, - } else .Debug; + + // TODO remove type annotation with ziglang/zig#13749 + const optimize: std.builtin.Mode = b.option(std.builtin.Mode, "optimize", "Prioritize performance, safety, or binary size (-O flag)") orelse + if (target.getCpuArch() == .wasm32) .ReleaseSmall else .Debug; const single_threaded = b.option(bool, "single-threaded", "Build artifacts that run in single threaded mode"); const use_zig_libcxx = b.option(bool, "use-zig-libcxx", "If libc++ is needed, use zig's bundled version, don't try to integrate with the system") orelse false; diff --git a/ci/aarch64-macos.sh b/ci/aarch64-macos.sh index a4c2b9a748c2..c5ce361722aa 100755 --- a/ci/aarch64-macos.sh +++ b/ci/aarch64-macos.sh @@ -58,7 +58,7 @@ stage3-release/bin/zig build \ --prefix stage4-release \ -Denable-llvm \ -Dno-lib \ - -Drelease \ + -Doptimize=ReleaseFast \ -Dstrip \ -Dtarget=$TARGET \ -Duse-zig-libcxx \ diff --git a/ci/x86_64-linux-release.sh b/ci/x86_64-linux-release.sh index f8b94addcc97..98a41c155749 100755 --- a/ci/x86_64-linux-release.sh +++ b/ci/x86_64-linux-release.sh @@ -77,7 +77,7 @@ stage3-release/bin/zig build \ --prefix stage4-release \ -Denable-llvm \ -Dno-lib \ - -Drelease \ + -Doptimize=ReleaseFast \ -Dstrip \ -Dtarget=$TARGET \ -Duse-zig-libcxx \ diff --git a/ci/x86_64-macos-release.sh b/ci/x86_64-macos-release.sh index 1dd17943c3af..a5bf7031f9c2 100755 --- a/ci/x86_64-macos-release.sh +++ b/ci/x86_64-macos-release.sh @@ -62,7 +62,7 @@ stage3/bin/zig build \ --prefix stage4 \ -Denable-llvm \ -Dno-lib \ - -Drelease \ + -Doptimize=ReleaseFast \ -Dstrip \ -Dtarget=$TARGET \ -Duse-zig-libcxx \