mirror of
https://github.com/neovim/neovim.git
synced 2025-12-20 21:35:38 +00:00
This is matters for cross-compiling where we might not be able to run the "nvim" binary on the host. Instead reimplement the helptags extractor as a small lua script, which we can run on the host using the nlua0 helper already used for other generator scripts.
38 lines
1.4 KiB
Zig
38 lines
1.4 KiB
Zig
const std = @import("std");
|
|
const LazyPath = std.Build.LazyPath;
|
|
|
|
pub const SourceItem = struct { name: []u8, api_export: bool };
|
|
|
|
pub fn nvim_gen_runtime(
|
|
b: *std.Build,
|
|
nlua0: *std.Build.Step.Compile,
|
|
funcs_data: LazyPath,
|
|
) !*std.Build.Step.WriteFile {
|
|
const gen_runtime = b.addWriteFiles();
|
|
|
|
{
|
|
const gen_step = b.addRunArtifact(nlua0);
|
|
gen_step.addFileArg(b.path("src/gen/gen_vimvim.lua"));
|
|
const file = gen_step.addOutputFileArg("generated.vim");
|
|
_ = gen_runtime.addCopyFile(file, "syntax/vim/generated.vim");
|
|
gen_step.addFileArg(funcs_data);
|
|
gen_step.addFileArg(b.path("src/nvim/options.lua"));
|
|
gen_step.addFileArg(b.path("src/nvim/auevents.lua"));
|
|
gen_step.addFileArg(b.path("src/nvim/ex_cmds.lua"));
|
|
gen_step.addFileArg(b.path("src/nvim/vvars.lua"));
|
|
}
|
|
|
|
{
|
|
const install_doc_files = b.addInstallDirectory(.{ .source_dir = b.path("runtime/doc"), .install_dir = .prefix, .install_subdir = "runtime/doc" });
|
|
gen_runtime.step.dependOn(&install_doc_files.step);
|
|
|
|
const gen_step = b.addRunArtifact(nlua0);
|
|
gen_step.addFileArg(b.path("src/gen/gen_helptags.lua"));
|
|
const file = gen_step.addOutputFileArg("tags");
|
|
_ = gen_runtime.addCopyFile(file, "doc/tags");
|
|
gen_step.addDirectoryArg(b.path("runtime/doc"));
|
|
}
|
|
|
|
return gen_runtime;
|
|
}
|