fix: support -Dtarget=[target] for release builds
Specifying a target will still produce a baseline cpu release build.
This commit is contained in:
parent
31c03060cf
commit
b7b0501715
1 changed files with 17 additions and 2 deletions
15
build.zig
15
build.zig
|
@ -112,11 +112,26 @@ fn build_release(
|
||||||
.{ .cpu_arch = .x86_64, .os_tag = .windows },
|
.{ .cpu_arch = .x86_64, .os_tag = .windows },
|
||||||
.{ .cpu_arch = .aarch64, .os_tag = .windows },
|
.{ .cpu_arch = .aarch64, .os_tag = .windows },
|
||||||
} else blk: {
|
} else blk: {
|
||||||
|
const maybe_triple = b.option(
|
||||||
|
[]const u8,
|
||||||
|
"target",
|
||||||
|
"The CPU architecture, OS, and ABI to build for",
|
||||||
|
);
|
||||||
|
const triple = maybe_triple orelse {
|
||||||
const native_target = b.resolveTargetQuery(.{}).result;
|
const native_target = b.resolveTargetQuery(.{}).result;
|
||||||
break :blk &.{
|
break :blk &.{
|
||||||
.{ .cpu_arch = native_target.cpu.arch, .os_tag = native_target.os.tag },
|
.{ .cpu_arch = native_target.cpu.arch, .os_tag = native_target.os.tag },
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
const selected_target = std.Build.parseTargetQuery(.{
|
||||||
|
.arch_os_abi = triple,
|
||||||
|
}) catch |err| switch (err) {
|
||||||
|
error.ParseFailed => @panic("unknown target"),
|
||||||
|
};
|
||||||
|
break :blk &.{
|
||||||
|
.{ .cpu_arch = selected_target.cpu_arch, .os_tag = selected_target.os_tag, .abi = selected_target.abi },
|
||||||
|
};
|
||||||
|
};
|
||||||
const optimize = b.standardOptimizeOption(.{});
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
const optimize_release = optimize;
|
const optimize_release = optimize;
|
||||||
const optimize_debug = optimize;
|
const optimize_debug = optimize;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue