summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-14 21:00:04 +0800
committerruki <[email protected]>2020-12-14 21:00:04 +0800
commit007b2200be5b2a8e5d784829782b56793e93e572 (patch)
tree403978ce861800594e7904f0c609e92613c2a480
parent361eda0cd491f887acfb842567f498a553249ad7 (diff)
improve find_rc
-rw-r--r--xmake/core/tool/tool.lua4
-rw-r--r--xmake/modules/detect/tools/find_rc.lua16
-rw-r--r--xmake/toolchains/msvc/load.lua4
3 files changed, 9 insertions, 15 deletions
diff --git a/xmake/core/tool/tool.lua b/xmake/core/tool/tool.lua
index 5e674fc5d..bd90c0658 100644
--- a/xmake/core/tool/tool.lua
+++ b/xmake/core/tool/tool.lua
@@ -229,11 +229,7 @@ function tool.load(kind, opt)
if not instance then
return nil, errors
end
-
- -- save instance to the cache
tool._TOOLS[cachekey] = instance
-
- -- ok
return instance
end
diff --git a/xmake/modules/detect/tools/find_rc.lua b/xmake/modules/detect/tools/find_rc.lua
index 5edd8d69c..a36cd25bb 100644
--- a/xmake/modules/detect/tools/find_rc.lua
+++ b/xmake/modules/detect/tools/find_rc.lua
@@ -57,16 +57,12 @@ function main(opt)
--
-- e.g. C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64
--
- local arch = opt.arch or config.arch() or os.arch()
- local vcvarsall = config.get("__vcvarsall")
- if vcvarsall then
- local vcvars = vcvarsall[arch]
- if vcvars and vcvars.WindowsSdkDir and vcvars.WindowsSDKVersion then
- local bindir = path.join(vcvars.WindowsSdkDir, "bin", vcvars.WindowsSDKVersion, arch)
- if os.isdir(bindir) then
- opt.paths = opt.paths or {}
- table.insert(opt.paths, bindir)
- end
+ local envs = opt.envs
+ if envs and envs.WindowsSdkDir and envs.WindowsSDKVersion then
+ local bindir = path.join(envs.WindowsSdkDir, "bin", envs.WindowsSDKVersion, arch)
+ if os.isdir(bindir) then
+ opt.paths = opt.paths or {}
+ table.insert(opt.paths, bindir)
end
end
diff --git a/xmake/toolchains/msvc/load.lua b/xmake/toolchains/msvc/load.lua
index 95ebe0cf1..b112e2c80 100644
--- a/xmake/toolchains/msvc/load.lua
+++ b/xmake/toolchains/msvc/load.lua
@@ -35,7 +35,7 @@ function _add_vsenv(toolchain, name)
-- get the paths for the vs environment
local new = vcvars[name]
if new then
- toolchain:add("runenvs", name:upper(), path.splitenv(new))
+ toolchain:add("runenvs", name, table.unwrap(path.splitenv(new)))
end
end
@@ -61,6 +61,8 @@ function main(toolchain)
_add_vsenv(toolchain, "LIB")
_add_vsenv(toolchain, "INCLUDE")
_add_vsenv(toolchain, "LIBPATH")
+ _add_vsenv(toolchain, "WindowsSdkDir")
+ _add_vsenv(toolchain, "WindowsSDKVersion")
-- add some default flags
toolchain:add("cxxflags", "/EHsc")