Commit e8f28cda9e
Changed files (2)
lib
std
Build
lib/std/Build/Step/Compile.zig
@@ -614,6 +614,10 @@ pub fn isStaticLibrary(self: *const Compile) bool {
return self.kind == .lib and self.linkage != .dynamic;
}
+pub fn isDll(self: *Compile) bool {
+ return self.isDynamicLibrary() and self.rootModuleTarget().os.tag == .windows;
+}
+
pub fn producesPdbFile(self: *Compile) bool {
const target = self.rootModuleTarget();
// TODO: Is this right? Isn't PDB for *any* PE/COFF file?
@@ -632,7 +636,7 @@ pub fn producesPdbFile(self: *Compile) bool {
}
pub fn producesImplib(self: *Compile) bool {
- return self.isDynamicLibrary() and self.rootModuleTarget().os.tag == .windows;
+ return self.isDll();
}
pub fn linkLibC(self: *Compile) void {
lib/std/Build/Step/InstallArtifact.zig
@@ -57,8 +57,8 @@ pub fn create(owner: *std.Build, artifact: *Step.Compile, options: Options) *Ins
.disabled => null,
.default => switch (artifact.kind) {
.obj => @panic("object files have no standard installation procedure"),
- .exe, .@"test" => InstallDir{ .bin = {} },
- .lib => InstallDir{ .lib = {} },
+ .exe, .@"test" => .bin,
+ .lib => if (artifact.isDll()) .bin else .lib,
},
.override => |o| o,
};
@@ -77,15 +77,12 @@ pub fn create(owner: *std.Build, artifact: *Step.Compile, options: Options) *Ins
},
.h_dir = switch (options.h_dir) {
.disabled => null,
- .default => switch (artifact.kind) {
- .lib => .header,
- else => null,
- },
+ .default => if (artifact.kind == .lib) .header else null,
.override => |o| o,
},
.implib_dir = switch (options.implib_dir) {
.disabled => null,
- .default => if (artifact.producesImplib()) dest_dir else null,
+ .default => if (artifact.producesImplib()) .lib else null,
.override => |o| o,
},