From 353d3023c01e6b5311a98168f15bd31aae3933b8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 16 Oct 2024 14:55:18 -0700 Subject: [PATCH] fix windows build --- src/main.zig | 51 +++++++++++++++++---------------------------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/src/main.zig b/src/main.zig index 063ed65f46..af26e7159b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3885,32 +3885,14 @@ fn createModule( if (fs.path.isAbsolute(lib_dir_arg)) { const stripped_dir = lib_dir_arg[fs.path.diskDesignator(lib_dir_arg).len..]; const full_path = try fs.path.join(arena, &[_][]const u8{ root, stripped_dir }); - create_module.lib_directories.appendAssumeCapacity(.{ - .handle = fs.cwd().openDir(full_path, .{}) catch |err| { - warn("unable to open library directory {s}: {s}", .{ full_path, @errorName(err) }); - continue; - }, - .path = full_path, - }); + addLibDirectoryWarn(&create_module.lib_directories, full_path); } else { - create_module.lib_directories.appendAssumeCapacity(.{ - .handle = fs.cwd().openDir(lib_dir_arg, .{}) catch |err| { - warn("unable to open library directory {s}: {s}", .{ lib_dir_arg, @errorName(err) }); - continue; - }, - .path = lib_dir_arg, - }); + addLibDirectoryWarn(&create_module.lib_directories, lib_dir_arg); } } } else { for (create_module.lib_dir_args.items) |lib_dir_arg| { - create_module.lib_directories.appendAssumeCapacity(.{ - .handle = fs.cwd().openDir(lib_dir_arg, .{}) catch |err| { - warn("unable to open library directory {s}: {s}", .{ lib_dir_arg, @errorName(err) }); - continue; - }, - .path = lib_dir_arg, - }); + addLibDirectoryWarn(&create_module.lib_directories, lib_dir_arg); } } create_module.lib_dir_args = undefined; // From here we use lib_directories instead. @@ -3946,15 +3928,7 @@ fn createModule( try create_module.rpath_list.appendSlice(arena, paths.rpaths.items); try create_module.lib_directories.ensureUnusedCapacity(arena, paths.lib_dirs.items.len); - for (paths.lib_dirs.items) |lib_dir| { - create_module.lib_directories.appendAssumeCapacity(.{ - .handle = fs.cwd().openDir(lib_dir, .{}) catch |err| { - warn("unable to open library directory {s}: {s}", .{ lib_dir, @errorName(err) }); - continue; - }, - .path = lib_dir, - }); - } + for (paths.lib_dirs.items) |path| addLibDirectoryWarn(&create_module.lib_directories, path); } if (create_module.libc_paths_file) |paths_file| { @@ -3977,10 +3951,9 @@ fn createModule( fatal("unable to find native libc installation: {s}", .{@errorName(err)}); }; - try create_module.lib_directories.appendSlice(arena, &.{ - create_module.libc_installation.?.msvc_lib_dir.?, - create_module.libc_installation.?.kernel32_lib_dir.?, - }); + try create_module.lib_directories.ensureUnusedCapacity(arena, 2); + addLibDirectoryWarn(&create_module.lib_directories, create_module.libc_installation.?.msvc_lib_dir.?); + addLibDirectoryWarn(&create_module.lib_directories, create_module.libc_installation.?.kernel32_lib_dir.?); } } @@ -7504,3 +7477,13 @@ fn anyObjectLinkInputs(link_inputs: []const link.UnresolvedInput) bool { }; return false; } + +fn addLibDirectoryWarn(lib_directories: *std.ArrayListUnmanaged(Directory), path: []const u8) void { + lib_directories.appendAssumeCapacity(.{ + .handle = fs.cwd().openDir(path, .{}) catch |err| { + warn("unable to open library directory '{s}': {s}", .{ path, @errorName(err) }); + return; + }, + .path = path, + }); +}