Commit e687c87d69
src/link/MachO/zld.zig
@@ -3560,17 +3560,8 @@ pub fn linkWithZld(macho_file: *MachO, comp: *Compilation, prog_node: *std.Progr
try MachO.resolveLibSystem(arena, comp, options.sysroot, target, options.lib_dirs, &libs);
// frameworks
- var framework_dirs = std.ArrayList([]const u8).init(arena);
- for (options.framework_dirs) |dir| {
- if (try MachO.resolveSearchDir(arena, dir, options.sysroot)) |search_dir| {
- try framework_dirs.append(search_dir);
- } else {
- log.warn("directory not found for '-F{s}'", .{dir});
- }
- }
-
outer: for (options.frameworks.keys()) |f_name| {
- for (framework_dirs.items) |dir| {
+ for (options.framework_dirs) |dir| {
for (&[_][]const u8{ ".tbd", ".dylib", "" }) |ext| {
if (try MachO.resolveFramework(arena, dir, f_name, ext)) |full_path| {
const info = options.frameworks.get(f_name).?;
@@ -3590,7 +3581,7 @@ pub fn linkWithZld(macho_file: *MachO, comp: *Compilation, prog_node: *std.Progr
if (framework_not_found) {
log.warn("Framework search paths:", .{});
- for (framework_dirs.items) |dir| {
+ for (options.framework_dirs) |dir| {
log.warn(" {s}", .{dir});
}
}
src/link/MachO.zig
@@ -870,48 +870,6 @@ fn resolveLibSystemInDirs(arena: Allocator, dirs: []const []const u8, out_libs:
return false;
}
-pub fn resolveSearchDir(
- arena: Allocator,
- dir: []const u8,
- syslibroot: ?[]const u8,
-) !?[]const u8 {
- var candidates = std.ArrayList([]const u8).init(arena);
-
- if (fs.path.isAbsolute(dir)) {
- if (syslibroot) |root| {
- const common_dir = if (builtin.os.tag == .windows) blk: {
- // We need to check for disk designator and strip it out from dir path so
- // that we can concat dir with syslibroot.
- // TODO we should backport this mechanism to 'MachO.Dylib.parseDependentLibs()'
- const disk_designator = fs.path.diskDesignatorWindows(dir);
-
- if (mem.indexOf(u8, dir, disk_designator)) |where| {
- break :blk dir[where + disk_designator.len ..];
- }
-
- break :blk dir;
- } else dir;
- const full_path = try fs.path.join(arena, &[_][]const u8{ root, common_dir });
- try candidates.append(full_path);
- }
- }
-
- try candidates.append(dir);
-
- for (candidates.items) |candidate| {
- // Verify that search path actually exists
- var tmp = fs.cwd().openDir(candidate, .{}) catch |err| switch (err) {
- error.FileNotFound => continue,
- else => |e| return e,
- };
- defer tmp.close();
-
- return candidate;
- }
-
- return null;
-}
-
pub fn resolveLib(
arena: Allocator,
search_dir: []const u8,
src/main.zig
@@ -2566,7 +2566,7 @@ fn buildOutputType(
want_native_include_dirs = true;
}
- // Resolve the library path arguments with respect to sysroot.
+ // Resolve the library and framework path arguments with respect to sysroot.
var lib_dirs = std.ArrayList([]const u8).init(arena);
if (sysroot) |root| {
for (lib_dir_args.items) |dir| {