authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-09-30 00:36:20-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-09-30 00:36:20-07:00
log870af4907437cb55ffe7f0bfaa7b1ab025d928d3
tree192dd3f8a33ae56a44c84b81a8599a074976c8f9
parent14d6d07af2ce37569bce8b148599e31664de5f12

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


1 files changed, 19 insertions(+), 5 deletions(-)

lib/std/zig.zig+19-5
......@@ -102,7 +102,9 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
102102 target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,
103103 });
104104 } else {
105 return std.fmt.allocPrint(allocator, "{s}{s}.so", .{ target.libPrefix(), root_name });
105 return std.fmt.allocPrint(allocator, "{s}{s}.so", .{
106 target.libPrefix(), root_name,
107 });
106108 }
107109 },
108110 }
......@@ -112,10 +114,22 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
112114 .macho => switch (options.output_mode) {
113115 .Exe => return allocator.dupe(u8, root_name),
114116 .Lib => {
115 const suffix = switch (options.link_mode orelse .Static) {
116 .Static => ".a",
117 .Dynamic => ".dylib",
118 };
117 switch (options.link_mode orelse .Static) {
118 .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{
119 target.libPrefix(), root_name,
120 }),
121 .Dynamic => {
122 if (options.version) |ver| {
123 return std.fmt.allocPrint(allocator, "{s}{s}.dylib.{d}.{d}.{d}", .{
124 target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,
125 });
126 } else {
127 return std.fmt.allocPrint(allocator, "{s}{s}.dylib", .{
128 target.libPrefix(), root_name,
129 });
130 }
131 },
132 }
119133 return std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ target.libPrefix(), root_name, suffix });
120134 },
121135 .Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }),