summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack/main.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-18 00:35:53 +0800
committerruki <[email protected]>2023-11-18 00:35:53 +0800
commit76d63abc88586d3e51179773c1112f1eee76a8e8 (patch)
tree0e5ce02c245fadc920d71d02ed4151ff284121e5 /xmake/plugins/pack/main.lua
parent14f1ed5587ebe19a644f4832c059ff4ec830f6df (diff)
improve installdir for xpack
Diffstat (limited to 'xmake/plugins/pack/main.lua')
-rw-r--r--xmake/plugins/pack/main.lua21
1 files changed, 16 insertions, 5 deletions
diff --git a/xmake/plugins/pack/main.lua b/xmake/plugins/pack/main.lua
index 7a4ab0fbf..e404aba9b 100644
--- a/xmake/plugins/pack/main.lua
+++ b/xmake/plugins/pack/main.lua
@@ -44,6 +44,15 @@ function _pack_package(package)
os.tryrm(package:buildir())
os.mkdir(package:outputdir())
+ -- get need formats
+ local formats_need = option.get("formats")
+ if formats_need then
+ formats_need = formats_need:split(",")
+ if formats_need[1] == "all" then
+ formats_need = nil
+ end
+ end
+
-- do pack
assert(package:formats(), "xpack(%s): formats not found, please use `set_formats()` to set it.", package:name())
local scripts = {
@@ -52,11 +61,13 @@ function _pack_package(package)
package:script("package_after")
}
for _, format in package:formats():keys() do
- _load_package(package, format)
- for i = 1, 3 do
- local script = scripts[i]
- if script ~= nil then
- script(package)
+ if not formats_need or table.contains(formats_need, format) then
+ _load_package(package, format)
+ for i = 1, 3 do
+ local script = scripts[i]
+ if script ~= nil then
+ script(package)
+ end
end
end
end