瀏覽代碼

improve test.lua

ruki 1 年之前
父節點
當前提交
115e83b771
共有 1 個文件被更改,包括 19 次插入4 次删除
  1. 19 4
      scripts/test.lua

+ 19 - 4
scripts/test.lua

@@ -1,6 +1,7 @@
 -- imports
 import("core.base.option")
 import("core.platform.platform")
+import("core.package.package", {alias = "core_package"})
 import("packages", {alias = "get_packages"})
 
 -- the options
@@ -39,6 +40,16 @@ local options =
 ,   {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
 function _require_packages(argv, packages)
@@ -163,11 +174,15 @@ function _require_packages(argv, packages)
     table.insert(check_argv, "--extra=" .. extra_str)
 
     local install_packages = {}
-    for _, package in ipairs(packages) do
-        local ok = os.vexecv("xmake", table.join(check_argv, package), {try = true})
-        if ok == 0 then
-            table.insert(install_packages, package)
+    if _check_package_is_supported() then
+        for _, package in ipairs(packages) do
+            local ok = os.vexecv("xmake", table.join(check_argv, package), {try = true})
+            if ok == 0 then
+                table.insert(install_packages, package)
+            end
         end
+    else
+        install_packages = packages
     end
     if #install_packages > 0 then
         os.vexecv("xmake", table.join(require_argv, install_packages))