From 2a78df3a5ae693126eb52940debf0db46cbadcbd Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 2 Jun 2026 21:55:12 +0200 Subject: [PATCH] refactor(build.zig): no need to pass around b.graph.io next to b --- build.zig | 10 ++++------ src/build_lua.zig | 9 ++++----- src/gen/gen_steps.zig | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/build.zig b/build.zig index f4a9d8313b..01c6660bb8 100644 --- a/build.zig +++ b/build.zig @@ -197,7 +197,6 @@ pub fn build(b: *std.Build) !void { const nlua0 = try build_lua.build_nlua0( b, - io, target_host, optimize_host, host_use_luajit, @@ -458,7 +457,6 @@ pub fn build(b: *std.Build) !void { const gen_headers, const funcs_data = try gen.nvim_gen_sources( b, - io, nlua0, &nvim_sources, &nvim_headers, @@ -468,7 +466,7 @@ pub fn build(b: *std.Build) !void { ); const test_config_step = b.addWriteFiles(); - _ = test_config_step.add("test/cmakeconfig/paths.lua", try test_config(b, io)); + _ = test_config_step.add("test/cmakeconfig/paths.lua", try test_config(b)); const test_gen_step = b.step("gen_headers", "debug: output generated headers"); const config_install = b.addInstallDirectory(.{ @@ -535,7 +533,7 @@ pub fn build(b: *std.Build) !void { nvim_mod.addIncludePath(b.path("src")); nvim_mod.addIncludePath(gen_config.getDirectory()); nvim_mod.addIncludePath(gen_headers.getDirectory()); - try build_lua.add_lua_modules(b, io, t, nvim_mod, lpeg, use_luajit, false, sys_opts); + try build_lua.add_lua_modules(b, t, nvim_mod, lpeg, use_luajit, false, sys_opts); var unit_test_sources = try std.ArrayList([]u8).initCapacity(b.allocator, 10); if (support_unittests) { @@ -829,9 +827,9 @@ fn replace_backslashes(b: *std.Build, input: []const u8) ![]const u8 { input; } -pub fn test_config(b: *std.Build, io: std.Io) ![]u8 { +pub fn test_config(b: *std.Build) ![]u8 { var buf: [std.fs.max_path_bytes]u8 = std.mem.zeroes([std.fs.max_path_bytes]u8); - _ = try b.build_root.handle.realPath(io, &buf); + _ = try b.build_root.handle.realPath(b.graph.io, &buf); const src_path = std.mem.span(@as([*:0]u8, @ptrCast(&buf))); // we don't use test/cmakeconfig/paths.lua.in because it contains cmake specific logic diff --git a/src/build_lua.zig b/src/build_lua.zig index a27fe01360..a1896c40e9 100644 --- a/src/build_lua.zig +++ b/src/build_lua.zig @@ -4,7 +4,6 @@ const LazyPath = std.Build.LazyPath; pub fn build_nlua0( b: *std.Build, - io: std.Io, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, use_luajit: bool, @@ -60,7 +59,7 @@ pub fn build_nlua0( mod.addIncludePath(b.path("src")); mod.addIncludePath(b.path("src/includes_fixmelater")); - try add_lua_modules(b, io, target.result, mod, lpeg, use_luajit, true, system_integration_options); + try add_lua_modules(b, target.result, mod, lpeg, use_luajit, true, system_integration_options); } // for debugging the nlua0 environment @@ -84,7 +83,6 @@ pub fn build_nlua0( pub fn add_lua_modules( b: *std.Build, - io: std.Io, target: std.Target, mod: *std.Build.Module, lpeg_dep: ?*std.Build.Dependency, @@ -112,7 +110,7 @@ pub fn add_lua_modules( .flags = &flags, }); if (system_integration_options.lpeg) { - if (try findLpeg(b, io, target)) |lpeg_lib| { + if (try findLpeg(b, target)) |lpeg_lib| { mod.addLibraryPath(.{ .cwd_relative = std.fs.path.dirname(lpeg_lib).? }); mod.addObjectFile(.{ .cwd_relative = lpeg_lib }); } @@ -186,7 +184,7 @@ pub fn build_libluv( return lib; } -fn findLpeg(b: *std.Build, io: std.Io, target: std.Target) !?[]const u8 { +fn findLpeg(b: *std.Build, target: std.Target) !?[]const u8 { const filenames = [_][]const u8{ "lpeg_a", "lpeg", @@ -207,6 +205,7 @@ fn findLpeg(b: *std.Build, io: std.Io, target: std.Target) !?[]const u8 { try paths.append(b.allocator, dir); try paths.append(b.allocator, b.fmt("{s}/lua/5.1", .{dir})); } + const io = b.graph.io; for (paths.items) |path| { var dir = std.Io.Dir.openDirAbsolute(io, path, .{}) catch continue; defer dir.close(io); diff --git a/src/gen/gen_steps.zig b/src/gen/gen_steps.zig index a791ad62b1..782dd701a3 100644 --- a/src/gen/gen_steps.zig +++ b/src/gen/gen_steps.zig @@ -5,7 +5,6 @@ pub const SourceItem = struct { name: []u8, api_export: bool }; pub fn nvim_gen_sources( b: *std.Build, - io: std.Io, nlua0: *std.Build.Step.Compile, nvim_sources: *std.ArrayList(SourceItem), nvim_headers: *std.ArrayList([]u8), @@ -86,6 +85,7 @@ pub fn nvim_gen_sources( } // Dynamically add all Lua _core/ modules (like CMakeLists.txt does) + const io = b.graph.io; if (b.build_root.handle.openDir(io, "runtime/lua/vim/_core", .{ .iterate = true })) |core_dir_handle| { var core_dir = core_dir_handle; defer core_dir.close(io);