authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-12-07 01:50:49-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-12-07 12:49:17-07:00
log6d48357cc79a8c6b626cba7152165dfe2d3674d3
tree64e4156dd3a7eb23919c7180e7f21a875e788c52
parent9627018d0ce3cbe2af91b045d16b094f7adbc15b

build.zig: on windows always link llvm-required system libs

When building with LLVM, always do -lole32 -lversion -luuid even when using the cmake-provided build stuff. Otherwise we get undefined symbols when linking.

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

build.zig+7-6
...@@ -280,6 +280,13 @@ pub fn build(b: *Builder) !void {...@@ -280,6 +280,13 @@ pub fn build(b: *Builder) !void {
280 try addStaticLlvmOptionsToExe(exe);280 try addStaticLlvmOptionsToExe(exe);
281 try addStaticLlvmOptionsToExe(test_cases);281 try addStaticLlvmOptionsToExe(test_cases);
282 }282 }
283 if (target.isWindows()) {
284 inline for (.{ exe, test_cases }) |artifact| {
285 artifact.linkSystemLibrary("version");
286 artifact.linkSystemLibrary("uuid");
287 artifact.linkSystemLibrary("ole32");
288 }
289 }
283 }290 }
284291
285 const semver = try std.SemanticVersion.parse(version);292 const semver = try std.SemanticVersion.parse(version);
...@@ -614,12 +621,6 @@ fn addStaticLlvmOptionsToExe(exe: *std.build.LibExeObjStep) !void {...@@ -614,12 +621,6 @@ fn addStaticLlvmOptionsToExe(exe: *std.build.LibExeObjStep) !void {
614621
615 // This means we rely on clang-or-zig-built LLVM, Clang, LLD libraries.622 // This means we rely on clang-or-zig-built LLVM, Clang, LLD libraries.
616 exe.linkSystemLibrary("c++");623 exe.linkSystemLibrary("c++");
617
618 if (exe.target.getOs().tag == .windows) {
619 exe.linkSystemLibrary("version");
620 exe.linkSystemLibrary("uuid");
621 exe.linkSystemLibrary("ole32");
622 }
623}624}
624625
625fn addCxxKnownPath(626fn addCxxKnownPath(