mirror of
https://github.com/folke/lazy.nvim.git
synced 2025-08-21 08:31:04 +00:00
fix(rockspec): Check for Lua 5.1 header files.
Previously, rockspec.lua checked if Lua 5.1 was installed to determine if LuaRocks could build packages for Lua 5.1. This was not sufficient since the Lua version does not matter as long as the development headers for Lua 5.1 are available. So Lua 5.1 could be installed and the LuaRocks packages could still fail to install. Note: this also checks if a suitable version of Lua is installed since the command will fail if Lua is not installed at all.
This commit is contained in:
parent
6c3bda4aca
commit
284c7fe82b
1 changed files with 30 additions and 14 deletions
|
@ -4,6 +4,7 @@ local Community = require("lazy.community")
|
|||
local Config = require("lazy.core.config")
|
||||
local Health = require("lazy.health")
|
||||
local Util = require("lazy.util")
|
||||
local Process = require("lazy.manage.process")
|
||||
|
||||
---@class RockSpec
|
||||
---@field rockspec_format string
|
||||
|
@ -63,6 +64,21 @@ function M.hererocks.building()
|
|||
return vim.tbl_get(Config.plugins.hererocks or {}, "_", "build")
|
||||
end
|
||||
|
||||
---@param opts? LazyHealth
|
||||
---@param luarocks_cmd string
|
||||
---@return boolean
|
||||
function M.check_lua51_headers(opts, luarocks_cmd)
|
||||
local cmd = { luarocks_cmd, "--lua-version=5.1", "config", "variables.LUA_INCDIR" }
|
||||
local _, exit_code = Process.exec(cmd)
|
||||
|
||||
if exit_code ~= 0 then
|
||||
opts.error("Lua 5.1 headers not found. Install the Lua 5.1 development package for your system.")
|
||||
return false
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
---@param opts? LazyHealth
|
||||
function M.check(opts)
|
||||
opts = vim.tbl_extend("force", {
|
||||
|
@ -78,23 +94,23 @@ function M.check(opts)
|
|||
else
|
||||
ok = Health.have(M.python, opts)
|
||||
ok = Health.have(M.hererocks.bin("luarocks")) and ok
|
||||
Health.have(
|
||||
M.hererocks.bin("lua"),
|
||||
vim.tbl_extend("force", opts, {
|
||||
version = "-v",
|
||||
version_pattern = "5.1",
|
||||
})
|
||||
)
|
||||
if ok then
|
||||
local luarocks_cmd = M.hererocks.bin("luarocks")
|
||||
if Util.is_win then
|
||||
luarocks_cmd = luarocks_cmd .. ".bat"
|
||||
end
|
||||
ok = M.check_lua51_headers(opts, luarocks_cmd)
|
||||
end
|
||||
end
|
||||
else
|
||||
ok = Health.have("luarocks", opts)
|
||||
Health.have(
|
||||
{ "lua5.1", "lua", "lua-5.1" },
|
||||
vim.tbl_extend("force", opts, {
|
||||
version = "-v",
|
||||
version_pattern = "5.1",
|
||||
})
|
||||
)
|
||||
if ok then
|
||||
local luarocks_cmd = "luarocks"
|
||||
if Util.is_win then
|
||||
luarocks_cmd = luarocks_cmd .. ".bat"
|
||||
end
|
||||
ok = M.check_lua51_headers(opts, luarocks_cmd)
|
||||
end
|
||||
end
|
||||
return ok
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue