authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-04-30 18:15:05-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-05-25 18:54:35-07:00
log9ae410eec22dd0afaa93c3d2f33f3fa6ce6b7861
tree37bc755b2104bcd226217443b7f291c662108276
parentac0b1bfda2c8ac6093b86a000c3515c57535ef07

zig build: actually the configure passthru args are ordered


1 files changed, 6 insertions(+), 19 deletions(-)

src/main.zig+6-19
......@@ -4951,7 +4951,7 @@ fn cmdBuild(
49514951 .ReleaseSafe;
49524952 var configure_argv: std.ArrayList([]const u8) = .empty;
49534953 var make_argv: std.ArrayList([]const u8) = .empty;
4954 var cached_unordered_passthru_configure: std.ArrayList(u32) = .empty;
4954 var cached_passthru_configure: std.ArrayList(u32) = .empty;
49554955 var forks: std.ArrayList(Fork) = .empty;
49564956 var reference_trace: ?u32 = null;
49574957 var debug_compile_errors = false;
......@@ -4976,7 +4976,7 @@ fn cmdBuild(
49764976
49774977 try configure_argv.ensureUnusedCapacity(arena, 16);
49784978 try make_argv.ensureUnusedCapacity(arena, 16);
4979 try cached_unordered_passthru_configure.ensureUnusedCapacity(arena, 16);
4979 try cached_passthru_configure.ensureUnusedCapacity(arena, 16);
49804980
49814981 _ = configure_argv.addOneAssumeCapacity(); // configurer executable
49824982 _ = make_argv.addOneAssumeCapacity(); // maker executable
......@@ -5017,7 +5017,7 @@ fn cmdBuild(
50175017 mem.startsWith(u8, arg, "--release=") or
50185018 mem.eql(u8, arg, "--release"))
50195019 {
5020 try cached_unordered_passthru_configure.append(arena, @intCast(configure_argv.items.len));
5020 try cached_passthru_configure.append(arena, @intCast(configure_argv.items.len));
50215021 configure_argv.appendAssumeCapacity(arg);
50225022 continue;
50235023 } else if (mem.eql(u8, arg, "--system")) {
......@@ -5025,14 +5025,14 @@ fn cmdBuild(
50255025 i += 1;
50265026 system_pkg_dir_path = args[i];
50275027
5028 try cached_unordered_passthru_configure.append(arena, @intCast(configure_argv.items.len));
5028 try cached_passthru_configure.append(arena, @intCast(configure_argv.items.len));
50295029 configure_argv.appendAssumeCapacity(arg); // Intentionally "--system" only; not the path.
50305030 continue;
50315031 } else if (mem.cutPrefix(u8, arg, "--color=")) |rest| {
50325032 color = std.meta.stringToEnum(Color, rest) orelse
50335033 fatal("expected --color=[auto|on|off]; found: {s}", .{arg});
50345034
5035 try cached_unordered_passthru_configure.append(arena, @intCast(configure_argv.items.len));
5035 try cached_passthru_configure.append(arena, @intCast(configure_argv.items.len));
50365036 configure_argv.appendAssumeCapacity(arg);
50375037 continue;
50385038 } else if (mem.eql(u8, arg, "--build-file")) {
......@@ -5223,21 +5223,8 @@ fn cmdBuild(
52235223 defer config_man.deinit();
52245224 config_man.hash.addBytes(build_options.version);
52255225
5226 const SortContext = struct {
5227 list: []const []const u8,
5228 fn lessThan(this: @This(), lhs: u32, rhs: u32) bool {
5229 return mem.lessThan(u8, this.list[lhs], this.list[rhs]);
5230 }
5231 };
5232 mem.sortUnstable(
5233 u32,
5234 cached_unordered_passthru_configure.items,
5235 @as(SortContext, .{ .list = configure_argv.items }),
5236 SortContext.lessThan,
5237 );
5238 for (cached_unordered_passthru_configure.items) |i| {
5226 for (cached_passthru_configure.items) |i|
52395227 config_man.hash.addBytes(configure_argv.items[i]);
5240 }
52415228
52425229 // Normally the build runner is compiled for the host target but here is
52435230 // some code to help when debugging edits to the build runner so that you