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...@@ -102,7 +102,9 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
102 target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,102 target.libPrefix(), root_name, ver.major, ver.minor, ver.patch,
103 });103 });
104 } else {104 } 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 });
106 }108 }
107 },109 },
108 }110 }
...@@ -112,10 +114,22 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro...@@ -112,10 +114,22 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro
112 .macho => switch (options.output_mode) {114 .macho => switch (options.output_mode) {
113 .Exe => return allocator.dupe(u8, root_name),115 .Exe => return allocator.dupe(u8, root_name),
114 .Lib => {116 .Lib => {
115 const suffix = switch (options.link_mode orelse .Static) {117 switch (options.link_mode orelse .Static) {
116 .Static => ".a",118 .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{
117 .Dynamic => ".dylib",119 target.libPrefix(), root_name,
118 };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 }
119 return std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ target.libPrefix(), root_name, suffix });133 return std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ target.libPrefix(), root_name, suffix });
120 },134 },
121 .Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }),135 .Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }),