diff options
| author | OpportunityLiu <[email protected]> | 2019-08-21 09:49:29 +0800 |
|---|---|---|
| committer | OpportunityLiu <[email protected]> | 2019-08-21 09:53:15 +0800 |
| commit | c4dbeb54523b8773c030fd23e227fcc28c84f778 (patch) | |
| tree | 0ee9addbd249f2cb231594446ba2ea77e2c26029 /xmake/plugins/project/vsxmake/getinfo.lua | |
| parent | 2c891f5a18aec7d47d3458ef39b9294d7f3b4d59 (diff) | |
move to common file
Diffstat (limited to 'xmake/plugins/project/vsxmake/getinfo.lua')
| -rw-r--r-- | xmake/plugins/project/vsxmake/getinfo.lua | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index b0d24b04e..f433cb157 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -30,6 +30,7 @@ import("core.platform.environment") import("core.tool.compiler") import("core.tool.linker") import("lib.detect.find_tool") +import("private.action.run.make_runenvs") import("actions.config.configheader", {alias = "generate_configheader", rootdir = os.programdir()}) import("actions.config.configfiles", {alias = "generate_configfiles", rootdir = os.programdir()}) @@ -130,37 +131,6 @@ function _get_values(target, name) return table.unique(values) end --- add search directories for all dependent shared libraries on windows -function _make_runpath(target) - - local searchdirs = hashset.new() - local pathenv = {} - - local function insert(dir) - if not path.is_absolute(dir) then - dir = path.absolute(dir, os.projectdir()) - end - if searchdirs:insert(dir) then - table.insert(pathenv, dir) - 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 - insert(linkdir) - end - end - for _, dep in ipairs(target:orderdeps()) do - if dep:targetkind() == "shared" then - insert(dep:targetdir()) - end - end - return pathenv -end - -- make target info function _make_targetinfo(mode, arch, target) @@ -207,15 +177,17 @@ function _make_targetinfo(mode, arch, target) -- save runenvs local runenvs = {} - for k, v in pairs(target:get("runenvs")) do - local defs = table.imap(table.wrap(v), function(_, v) return vformat(v) end) - runenvs[k] = format("%s;$([System.Environment]::GetEnvironmentVariable('%s'))", path.joinenv(defs), k) + local addrunenvs, setrunenvs = make_runenvs(target) + for k, v in pairs(addrunenvs) do + if k:upper() == "PATH" then + runenvs[k] = format("%s;$([System.Environment]::GetEnvironmentVariable('%s'))", _make_dirs(v), k) + else + runenvs[k] = format("%s;$([System.Environment]::GetEnvironmentVariable('%s'))", path.joinenv(v), k) + end end - for k, v in pairs(target:get("runenv")) do - local defs = table.imap(table.wrap(v), function(_, v) return vformat(v) end) - runenvs[k] = path.joinenv(defs) + for k, v in pairs(setrunenvs) do + runenvs[k] = path.joinenv(v) end - runenvs["PATH"] = _make_dirs(_make_runpath(target)) .. ";" .. (runenvs["PATH"] or "$([System.Environment]::GetEnvironmentVariable('PATH'))") local runenvstr = {} for k, v in pairs(runenvs) do table.insert(runenvstr, k .. "=" .. v) |
