summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/plugins/pack/main.lua')
-rw-r--r--xmake/plugins/pack/main.lua13
1 files changed, 11 insertions, 2 deletions
diff --git a/xmake/plugins/pack/main.lua b/xmake/plugins/pack/main.lua
index 8b6a81798..fb0c983a0 100644
--- a/xmake/plugins/pack/main.lua
+++ b/xmake/plugins/pack/main.lua
@@ -26,6 +26,7 @@ import("core.project.project")
import("private.service.remote_build.action", {alias = "remote_build_action"})
import("actions.build.main", {rootdir = os.programdir(), alias = "build_action"})
import("xpack")
+import("async.runjobs")
-- get packages
function _get_packages()
@@ -85,9 +86,17 @@ function _pack_package(package)
end
function _pack_packages()
- for _, package in ipairs(_get_packages()) do
- _pack_package(package)
+ local packages = _get_packages()
+ local jobs = option.get("jobs")
+ if jobs then
+ jobs = tonumber(jobs)
end
+ runjobs("pack_packages", function (index)
+ local package = packages[index]
+ if package then
+ _pack_package(package)
+ end
+ end, {total = #packages, comax = jobs or os.default_njob(), isolate = true})
end
function _build_targets()