From f2bd7939fd1688542b38c70ac5ecf07434751d64 Mon Sep 17 00:00:00 2001 From: Jérôme Leclercq Date: Thu, 8 Jun 2023 16:10:33 +0200 Subject: Make runpath recursive on Windows --- xmake/modules/private/action/run/make_runenvs.lua | 32 ++++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/xmake/modules/private/action/run/make_runenvs.lua b/xmake/modules/private/action/run/make_runenvs.lua index a902a8cc8..5f560c3c1 100644 --- a/xmake/modules/private/action/run/make_runenvs.lua +++ b/xmake/modules/private/action/run/make_runenvs.lua @@ -35,24 +35,30 @@ function _make_runpath_on_windows(target) end end - 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 + local function insert_target(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 end + + insert_target(target) + return pathenv end -- cgit v1.3.1 From d23314a2e7f2b7a9a9e917fa88a3b4abbdee423f Mon Sep 17 00:00:00 2001 From: Jérôme Leclercq Date: Fri, 9 Jun 2023 07:33:50 +0200 Subject: Update make_runenvs.lua --- xmake/modules/private/action/run/make_runenvs.lua | 32 +++++++++++++---------- 1 file 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 -- cgit v1.3.1 From 4ebf83eebe32704a5b7b286952b1b36fca643ac1 Mon Sep 17 00:00:00 2001 From: Jérôme Leclercq Date: Fri, 9 Jun 2023 07:39:17 +0200 Subject: Update make_runenvs.lua --- xmake/modules/private/action/run/make_runenvs.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/modules/private/action/run/make_runenvs.lua b/xmake/modules/private/action/run/make_runenvs.lua index 6f1ff3c04..8b804e3fc 100644 --- a/xmake/modules/private/action/run/make_runenvs.lua +++ b/xmake/modules/private/action/run/make_runenvs.lua @@ -38,7 +38,7 @@ function _make_runpath_on_windows(target) -- recursively add targets and dep targets linkdirs local seentargets = hashset.new() local function insert_target(target) - if seentargets:insert(target) + if seentargets:insert(target) then for _, linkdir in ipairs(target:get("linkdirs")) do insert(linkdir) end -- cgit v1.3.1