summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérôme Leclercq <[email protected]>2023-06-09 07:33:50 +0200
committerGitHub <[email protected]>2023-06-09 07:33:50 +0200
commitd23314a2e7f2b7a9a9e917fa88a3b4abbdee423f (patch)
tree29d3038f56cf1ebb2ff4ad1b1469ee4611615a47
parentf2bd7939fd1688542b38c70ac5ecf07434751d64 (diff)
Update make_runenvs.lua
-rw-r--r--xmake/modules/private/action/run/make_runenvs.lua32
1 files changed, 18 insertions, 14 deletions
diff --git a/xmake/modules/private/action/run/make_runenvs.lua b/xmake/modules/private/action/run/make_runenvs.lua
index 5f560c3c1..6f1ff3c04 100644
--- a/xmake/modules/private/action/run/make_runenvs.lua
+++ b/xmake/modules/private/action/run/make_runenvs.lua
@@ -35,25 +35,29 @@ function _make_runpath_on_windows(target)
end
end
+ -- recursively add targets and dep targets linkdirs
+ local seentargets = hashset.new()
local function insert_target(target)
- for _, linkdir in ipairs(target:get("linkdirs")) do
- insert(linkdir)
- end
- for _, opt in ipairs(target:orderopts()) do
- for _, linkdir in ipairs(opt:get("linkdirs")) do
+ if seentargets:insert(target)
+ for _, linkdir in ipairs(target:get("linkdirs")) do
insert(linkdir)
end
- end
- for _, pkg in ipairs(target:orderpkgs()) do
- for _, linkdir in ipairs(pkg:get("linkdirs")) do
- insert(linkdir)
+ for _, opt in ipairs(target:orderopts()) do
+ for _, linkdir in ipairs(opt:get("linkdirs")) do
+ insert(linkdir)
+ end
end
- end
- for _, dep in ipairs(target:orderdeps()) do
- if dep:kind() == "shared" then
- insert(dep:targetdir())
+ for _, pkg in ipairs(target:orderpkgs()) do
+ for _, linkdir in ipairs(pkg:get("linkdirs")) do
+ insert(linkdir)
+ end
+ end
+ for _, dep in ipairs(target:orderdeps()) do
+ if dep:kind() == "shared" then
+ insert(dep:targetdir())
+ end
+ insert_target(dep)
end
- insert_target(dep)
end
end