summaryrefslogtreecommitdiff
path: root/xmake/plugins/pack/archive.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-24 22:34:15 +0800
committerruki <[email protected]>2023-11-24 22:34:15 +0800
commitafbbacc9085b29e39cc13e00d5673202a70f7645 (patch)
tree6c5bbad30be4b526500989de84c617f0a0af1f40 /xmake/plugins/pack/archive.lua
parent9217b528138fe4384403c0b573e8617bdcc18358 (diff)
add sourcefiles for xpack
Diffstat (limited to 'xmake/plugins/pack/archive.lua')
-rw-r--r--xmake/plugins/pack/archive.lua28
1 files changed, 22 insertions, 6 deletions
diff --git a/xmake/plugins/pack/archive.lua b/xmake/plugins/pack/archive.lua
index 818404345..dd1861ca4 100644
--- a/xmake/plugins/pack/archive.lua
+++ b/xmake/plugins/pack/archive.lua
@@ -26,16 +26,32 @@ import("batchcmds")
-- pack archive package
function _pack_archive(package)
- -- do install
- batchcmds.get_installcmds(package):runcmds()
- for _, component in table.orderpairs(package:components()) do
- if component:get("default") ~= false then
- batchcmds.get_installcmds(component):runcmds()
+ -- archive source files
+ if package:from_source() then
+ local srcfiles, dstfiles = package:sourcefiles()
+ for idx, srcfile in ipairs(srcfiles) do
+ os.vcp(srcfile, dstfiles[idx])
+ end
+ for _, component in table.orderpairs(package:components()) do
+ if component:get("default") ~= false then
+ local srcfiles, dstfiles = component:sourcefiles()
+ for idx, srcfile in ipairs(srcfiles) do
+ os.vcp(srcfile, dstfiles[idx])
+ end
+ end
+ end
+ else
+ -- archive binary files
+ batchcmds.get_installcmds(package):runcmds()
+ for _, component in table.orderpairs(package:components()) do
+ if component:get("default") ~= false then
+ batchcmds.get_installcmds(component):runcmds()
+ end
end
end
-- archive install files
- local rootdir = package:rootdir()
+ local rootdir = package:from_source() and package:source_rootdir() or package:install_rootdir()
local oldir = os.cd(rootdir)
local archivefiles = os.files("**")
os.cd(oldir)