summaryrefslogtreecommitdiff
path: root/xmake/actions/install/install.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-10-06 00:56:46 +0800
committerruki <[email protected]>2020-10-06 00:56:46 +0800
commitc73161f573ea50e24494114166d5ae6d25e56196 (patch)
tree468e6d79e8d1a6eb535b946b4edb8b34560a55ef /xmake/actions/install/install.lua
parent3b57dab66edacc4f0f17cebf20c5c726def7a993 (diff)
improve install/uninstall/package
Diffstat (limited to 'xmake/actions/install/install.lua')
-rw-r--r--xmake/actions/install/install.lua32
1 files changed, 9 insertions, 23 deletions
diff --git a/xmake/actions/install/install.lua b/xmake/actions/install/install.lua
index 624868f42..99bbff9b5 100644
--- a/xmake/actions/install/install.lua
+++ b/xmake/actions/install/install.lua
@@ -104,41 +104,27 @@ function _install_target(target)
os.cd(oldir)
end
--- install the given target and deps
-function _install_target_and_deps(target)
-
- -- this target have been finished?
- if _g.finished[target:name()] then
- return
- end
-
- -- install for all dependent targets
- for _, depname in ipairs(target:get("deps")) do
- _install_target_and_deps(project.target(depname))
+-- install the given targets
+function _install_targets(targets)
+ for _, target in ipairs(targets) do
+ _install_target(target)
end
-
- -- install target
- _install_target(target)
-
- -- finished
- _g.finished[target:name()] = true
end
-- install targets
function main(targetname)
- -- init finished states
- _g.finished = {}
-
-- install the given target?
if targetname and not targetname:startswith("__") then
- _install_target_and_deps(project.target(targetname))
+ local target = project.target(targetname)
+ _install_targets(target:orderdeps())
+ _install_target(target)
else
-- install default or all targets
- for _, target in pairs(project.targets()) do
+ for _, target in ipairs(project.ordertargets()) do
local default = target:get("default")
if default == nil or default == true or targetname == "__all" then
- _install_target_and_deps(target)
+ _install_target(target)
end
end
end