zig cc: default to a.exe on windows

This matches Clang. Thanks to Abner Coimbre for pointing this out.
This commit is contained in:
Andrew Kelley 2020-12-16 21:37:15 -07:00
parent 8975fa5b38
commit 6dfe9cc83e

View File

@ -372,6 +372,13 @@ const SOName = union(enum) {
yes: []const u8,
};
const EmitBin = union(enum) {
no,
yes_default_path,
yes: []const u8,
yes_a_out,
};
const Emit = union(enum) {
no,
yes_default_path,
@ -471,7 +478,7 @@ fn buildOutputType(
var time_report = false;
var stack_report = false;
var show_builtin = false;
var emit_bin: Emit = .yes_default_path;
var emit_bin: EmitBin = .yes_default_path;
var emit_asm: Emit = .no;
var emit_llvm_ir: Emit = .no;
var emit_zir: Emit = .no;
@ -1284,7 +1291,7 @@ fn buildOutputType(
switch (c_out_mode) {
.link => {
output_mode = if (is_shared_lib) .Lib else .Exe;
emit_bin = .{ .yes = out_path orelse "a.out" };
emit_bin = if (out_path) |p| .{ .yes = p } else EmitBin.yes_a_out;
enable_cache = true;
},
.object => {
@ -1498,6 +1505,11 @@ fn buildOutputType(
},
};
const a_out_basename = switch (object_format) {
.pe, .coff => "a.exe",
else => "a.out",
};
const emit_bin_loc: ?Compilation.EmitLoc = switch (emit_bin) {
.no => null,
.yes_default_path => Compilation.EmitLoc{
@ -1549,6 +1561,10 @@ fn buildOutputType(
};
}
},
.yes_a_out => Compilation.EmitLoc{
.directory = null,
.basename = a_out_basename,
},
};
const default_h_basename = try std.fmt.allocPrint(arena, "{}.h", .{root_name});
@ -1784,6 +1800,7 @@ fn buildOutputType(
.print = comp.bin_file.options.emit.?.directory.path orelse ".",
},
.yes => |full_path| break :blk .{ .update = full_path },
.yes_a_out => break :blk .{ .update = a_out_basename },
}
};