diff --git a/.gitignore b/.gitignore index f85fc969b1..9fa6f71cc7 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ # -andrewrk zig-cache/ +/release/ +/debug/ /build/ /build-*/ /docgen_tmp/ diff --git a/lib/std/build.zig b/lib/std/build.zig index bd097c9414..c981c957cf 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -200,12 +200,16 @@ pub const Builder = struct { const install_prefix = self.install_prefix orelse "/usr"; self.install_path = fs.path.join(self.allocator, &[_][]const u8{ dest_dir, install_prefix }) catch unreachable; } else { - const install_prefix = self.install_prefix orelse blk: { - const p = self.cache_root; + self.install_path = self.install_prefix orelse blk: { + const p = if (self.release_mode) |mode| switch (mode) { + .Debug => "debug", + .ReleaseSafe => "release", + .ReleaseFast => "release", + .ReleaseSmall => "release", + } else "debug"; self.install_prefix = p; - break :blk p; + break :blk self.pathFromRoot(p); }; - self.install_path = install_prefix; } self.lib_dir = fs.path.join(self.allocator, &[_][]const u8{ self.install_path, "lib" }) catch unreachable; self.exe_dir = fs.path.join(self.allocator, &[_][]const u8{ self.install_path, "bin" }) catch unreachable; diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig index f2fa2dc3b8..ab418d3804 100644 --- a/lib/std/special/build_runner.zig +++ b/lib/std/special/build_runner.zig @@ -134,8 +134,8 @@ pub fn main() !void { } } - builder.resolveInstallPrefix(); try runBuild(builder); + builder.resolveInstallPrefix(); if (builder.validateUserInputDidItFail()) return usageAndErr(builder, true, stderr_stream);