mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
Merge pull request #23378 from alexrp/build-zig-cleanup
This commit is contained in:
parent
ed6418544c
commit
1423b38c45
1 changed files with 56 additions and 12 deletions
68
build.zig
68
build.zig
|
|
@ -214,11 +214,6 @@ pub fn build(b: *std.Build) !void {
|
|||
|
||||
test_step.dependOn(&exe.step);
|
||||
|
||||
if (target.result.os.tag == .windows and target.result.abi == .gnu) {
|
||||
// LTO is currently broken on mingw, this can be removed when it's fixed.
|
||||
exe.want_lto = false;
|
||||
}
|
||||
|
||||
const use_llvm = b.option(bool, "use-llvm", "Use the llvm backend");
|
||||
exe.use_llvm = use_llvm;
|
||||
exe.use_lld = use_llvm;
|
||||
|
|
@ -331,7 +326,12 @@ pub fn build(b: *std.Build) !void {
|
|||
try addCmakeCfgOptionsToExe(b, cfg, exe, use_zig_libcxx);
|
||||
} else {
|
||||
// Here we are -Denable-llvm but no cmake integration.
|
||||
try addStaticLlvmOptionsToModule(exe.root_module);
|
||||
try addStaticLlvmOptionsToModule(exe.root_module, .{
|
||||
.llvm_has_m68k = llvm_has_m68k,
|
||||
.llvm_has_csky = llvm_has_csky,
|
||||
.llvm_has_arc = llvm_has_arc,
|
||||
.llvm_has_xtensa = llvm_has_xtensa,
|
||||
});
|
||||
}
|
||||
if (target.result.os.tag == .windows) {
|
||||
// LLVM depends on networking as of version 18.
|
||||
|
|
@ -359,11 +359,7 @@ pub fn build(b: *std.Build) !void {
|
|||
&[_][]const u8{ tracy_path, "public", "TracyClient.cpp" },
|
||||
);
|
||||
|
||||
// On mingw, we need to opt into windows 7+ to get some features required by tracy.
|
||||
const tracy_c_flags: []const []const u8 = if (target.result.os.tag == .windows and target.result.abi == .gnu)
|
||||
&[_][]const u8{ "-DTRACY_ENABLE=1", "-fno-sanitize=undefined", "-D_WIN32_WINNT=0x601" }
|
||||
else
|
||||
&[_][]const u8{ "-DTRACY_ENABLE=1", "-fno-sanitize=undefined" };
|
||||
const tracy_c_flags: []const []const u8 = &.{ "-DTRACY_ENABLE=1", "-fno-sanitize=undefined" };
|
||||
|
||||
exe.root_module.addIncludePath(.{ .cwd_relative = tracy_path });
|
||||
exe.root_module.addCSourceFile(.{ .file = .{ .cwd_relative = client_cpp }, .flags = tracy_c_flags });
|
||||
|
|
@ -818,7 +814,12 @@ fn addCmakeCfgOptionsToExe(
|
|||
}
|
||||
}
|
||||
|
||||
fn addStaticLlvmOptionsToModule(mod: *std.Build.Module) !void {
|
||||
fn addStaticLlvmOptionsToModule(mod: *std.Build.Module, options: struct {
|
||||
llvm_has_m68k: bool,
|
||||
llvm_has_csky: bool,
|
||||
llvm_has_arc: bool,
|
||||
llvm_has_xtensa: bool,
|
||||
}) !void {
|
||||
// Adds the Zig C++ sources which both stage1 and stage2 need.
|
||||
//
|
||||
// We need this because otherwise zig_clang_cc1_main.cpp ends up pulling
|
||||
|
|
@ -842,6 +843,22 @@ fn addStaticLlvmOptionsToModule(mod: *std.Build.Module) !void {
|
|||
mod.linkSystemLibrary(lib_name, .{});
|
||||
}
|
||||
|
||||
if (options.llvm_has_m68k) for (llvm_libs_m68k) |lib_name| {
|
||||
mod.linkSystemLibrary(lib_name, .{});
|
||||
};
|
||||
|
||||
if (options.llvm_has_csky) for (llvm_libs_csky) |lib_name| {
|
||||
mod.linkSystemLibrary(lib_name, .{});
|
||||
};
|
||||
|
||||
if (options.llvm_has_arc) for (llvm_libs_arc) |lib_name| {
|
||||
mod.linkSystemLibrary(lib_name, .{});
|
||||
};
|
||||
|
||||
if (options.llvm_has_xtensa) for (llvm_libs_xtensa) |lib_name| {
|
||||
mod.linkSystemLibrary(lib_name, .{});
|
||||
};
|
||||
|
||||
mod.linkSystemLibrary("z", .{});
|
||||
mod.linkSystemLibrary("zstd", .{});
|
||||
|
||||
|
|
@ -1330,6 +1347,33 @@ const llvm_libs = [_][]const u8{
|
|||
"LLVMSupport",
|
||||
"LLVMDemangle",
|
||||
};
|
||||
const llvm_libs_m68k = [_][]const u8{
|
||||
"LLVMM68kDisassembler",
|
||||
"LLVMM68kAsmParser",
|
||||
"LLVMM68kCodeGen",
|
||||
"LLVMM68kDesc",
|
||||
"LLVMM68kInfo",
|
||||
};
|
||||
const llvm_libs_csky = [_][]const u8{
|
||||
"LLVMCSKYDisassembler",
|
||||
"LLVMCSKYAsmParser",
|
||||
"LLVMCSKYCodeGen",
|
||||
"LLVMCSKYDesc",
|
||||
"LLVMCSKYInfo",
|
||||
};
|
||||
const llvm_libs_arc = [_][]const u8{
|
||||
"LLVMARCDisassembler",
|
||||
"LLVMARCCodeGen",
|
||||
"LLVMARCDesc",
|
||||
"LLVMARCInfo",
|
||||
};
|
||||
const llvm_libs_xtensa = [_][]const u8{
|
||||
"LLVMXtensaDisassembler",
|
||||
"LLVMXtensaAsmParser",
|
||||
"LLVMXtensaCodeGen",
|
||||
"LLVMXtensaDesc",
|
||||
"LLVMXtensaInfo",
|
||||
};
|
||||
|
||||
fn generateLangRef(b: *std.Build) std.Build.LazyPath {
|
||||
const doctest_exe = b.addExecutable(.{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue