zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 870af4907437cb55ffe7f0bfaa7b1ab025d928d3 (tree)
parent 14d6d07af2ce37569bce8b148599e31664de5f12
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Wed, 30 Sep 2020 00:36:20 -0700

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

Diffstat:
Mlib/std/zig.zig | 24+++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/lib/std/zig.zig b/lib/std/zig.zig @@ -102,7 +102,9 @@ pub fn binNameAlloc(allocator: *std.mem.Allocator, options: BinNameOptions) erro target.libPrefix(), root_name, ver.major, ver.minor, ver.patch, }); } 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) { .Exe => return allocator.dupe(u8, root_name), .Lib => { - const suffix = switch (options.link_mode orelse .Static) { - .Static => ".a", - .Dynamic => ".dylib", - }; + switch (options.link_mode orelse .Static) { + .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ + 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 }); }, .Obj => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, target.oFileExt() }),