std.zig.binNameAlloc: take into account version for macos dylibs

master
Andrew Kelley 2020-09-30 00:36:20 -07:00
parent 14d6d07af2
commit 870af49074
1 changed files with 19 additions and 5 deletions

View File

@ -102,7 +102,9 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
target.libPrefix(), root_name, ver.major, ver.minor, ver.patch, target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,
}); });
} else { } else {
return std.fmt.allocPrint(allocator, "{s}{s}.so", .{ target.libPrefix(), root_name }); return std.fmt.allocPrint(allocator, "{s}{s}.so", .{
target.libPrefix(), root_name,
});
} }
}, },
} }
@ -112,10 +114,22 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
.macho => switch (options.output_mode) { .macho => switch (options.output_mode) {
.Exe => return allocator.dupe(u8, root_name), .Exe => return allocator.dupe(u8, root_name),
.Lib => { .Lib => {
const suffix = switch (options.link_mode orelse .Static) { switch (options.link_mode orelse .Static) {
.Static => ".a", .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{
.Dynamic => ".dylib", target.libPrefix(), root_name,
}; }),
.Dynamic => {
if (options.version) |ver| {
return std.fmt.allocPrint(allocator, "{s}{s}.dylib.{d}.{d}.{d}", .{
target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,
});
} else {
return std.fmt.allocPrint(allocator, "{s}{s}.dylib", .{
target.libPrefix(), root_name,
});
}
},
}
return std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ target.libPrefix(), root_name, suffix }); return std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ target.libPrefix(), root_name, suffix });
}, },
.Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }), .Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }),