improve test.lua

pull/4025/head
ruki 9 months ago
parent 7ae440e7fb
commit 115e83b771
  1. 23
      scripts/test.lua

@ -1,6 +1,7 @@
-- imports -- imports
import("core.base.option") import("core.base.option")
import("core.platform.platform") import("core.platform.platform")
import("core.package.package", {alias = "core_package"})
import("packages", {alias = "get_packages"}) import("packages", {alias = "get_packages"})
-- the options -- the options
@ -39,6 +40,16 @@ local options =
, {nil, "packages", "vs", nil, "The package list." } , {nil, "packages", "vs", nil, "The package list." }
} }
-- check package is supported?
function _check_package_is_supported()
for _, names in pairs(core_package.apis()) do
for _, name in ipairs(names) do
if type(name) == "string" and name == "package.on_check" then
return true
end
end
end
end
-- require packages -- require packages
function _require_packages(argv, packages) function _require_packages(argv, packages)
@ -163,11 +174,15 @@ function _require_packages(argv, packages)
table.insert(check_argv, "--extra=" .. extra_str) table.insert(check_argv, "--extra=" .. extra_str)
local install_packages = {} local install_packages = {}
for _, package in ipairs(packages) do if _check_package_is_supported() then
local ok = os.vexecv("xmake", table.join(check_argv, package), {try = true}) for _, package in ipairs(packages) do
if ok == 0 then local ok = os.vexecv("xmake", table.join(check_argv, package), {try = true})
table.insert(install_packages, package) if ok == 0 then
table.insert(install_packages, package)
end
end end
else
install_packages = packages
end end
if #install_packages > 0 then if #install_packages > 0 then
os.vexecv("xmake", table.join(require_argv, install_packages)) os.vexecv("xmake", table.join(require_argv, install_packages))

Loading…
Cancel
Save