mirror of
https://github.com/neovim/neovim.git
synced 2026-02-24 11:22:14 +10:00
Merge pull request #28344 from bfredl/wonderland
feat(build): build.zig MVP: build and run functionaltests on linux
This commit is contained in:
@@ -12,12 +12,17 @@ get_directory_property(LUA_GEN_DEPS DIRECTORY ${PROJECT_SOURCE_DIR}/src/nvim DEF
|
||||
|
||||
add_custom_command(OUTPUT ${GENERATED_SYN_VIM}
|
||||
COMMAND ${LUA_GEN} ${SYN_VIM_GENERATOR} ${GENERATED_SYN_VIM} ${FUNCS_DATA}
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/options.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/auevents.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/ex_cmds.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/vvars.lua
|
||||
DEPENDS
|
||||
${LUA_GEN_DEPS}
|
||||
${SYN_VIM_GENERATOR}
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/ex_cmds.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/auevents.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/options.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/vvars.lua
|
||||
${PROJECT_SOURCE_DIR}/src/nvim/eval.c
|
||||
${FUNCS_DATA}
|
||||
)
|
||||
|
||||
@@ -110,6 +110,12 @@ API
|
||||
it would return `nil`, which made it impossible to tell if the directory was
|
||||
actually trusted.
|
||||
|
||||
BUILD
|
||||
|
||||
• A Zig-based build system has been added as an alternative to CMake. It is
|
||||
currently limited in functionality, and CMake remains the recommended option
|
||||
for the time being.
|
||||
|
||||
DEFAULTS
|
||||
|
||||
• 'statusline' default is exposed as a statusline expression (previously it
|
||||
|
||||
3
runtime/embedded_data.zig
Normal file
3
runtime/embedded_data.zig
Normal file
@@ -0,0 +1,3 @@
|
||||
pub const inspect_module = @embedFile("./lua/vim/inspect.lua");
|
||||
pub const shared_module = @embedFile("./lua/vim/shared.lua");
|
||||
pub const iter_module = @embedFile("./lua/vim/iter.lua");
|
||||
39
runtime/gen_runtime.zig
Normal file
39
runtime/gen_runtime.zig
Normal file
@@ -0,0 +1,39 @@
|
||||
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,
|
||||
nvim_bin: *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" });
|
||||
const gen_step = b.addRunArtifact(nvim_bin);
|
||||
gen_step.step.dependOn(&install_doc_files.step);
|
||||
gen_step.addArgs(&.{ "-u", "NONE", "-i", "NONE", "-e", "--headless", "-c", "helptags ++t doc", "-c", "quit" });
|
||||
// TODO(bfredl): ugly on purpose. nvim should be able to generate "tags" at a specificed destination
|
||||
const install_path: std.Build.LazyPath = .{ .cwd_relative = b.install_path };
|
||||
gen_step.setCwd(install_path.path(b, "runtime/"));
|
||||
|
||||
gen_runtime.step.dependOn(&gen_step.step);
|
||||
}
|
||||
|
||||
return gen_runtime;
|
||||
}
|
||||
Reference in New Issue
Block a user