summaryrefslogtreecommitdiff
path: root/xmake/toolchains/msvc/load.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-13 22:31:27 +0800
committerruki <[email protected]>2020-12-13 22:31:27 +0800
commit0f7d4ef7bf2c3d9e04fc104defb50e8c7f6583f1 (patch)
tree65723a232e796794dc41c4c74d98fa7addc27818 /xmake/toolchains/msvc/load.lua
parent38b7c45ae4b1c58d4734ab027fd520d9a397a383 (diff)
cache toolchain configs
Diffstat (limited to 'xmake/toolchains/msvc/load.lua')
-rw-r--r--xmake/toolchains/msvc/load.lua31
1 files changed, 4 insertions, 27 deletions
diff --git a/xmake/toolchains/msvc/load.lua b/xmake/toolchains/msvc/load.lua
index 3e6dd39d5..95ebe0cf1 100644
--- a/xmake/toolchains/msvc/load.lua
+++ b/xmake/toolchains/msvc/load.lua
@@ -26,37 +26,14 @@ import("detect.sdks.find_vstudio")
-- add the given vs environment
function _add_vsenv(toolchain, name)
- -- get vcvarsall
- local vcvarsall = config.get("__vcvarsall")
- if not vcvarsall then
+ -- get vcvars
+ local vcvars = toolchain:config("vcvars")
+ if not vcvars then
return
end
- -- get vs environment for the current arch
- local arch = toolchain:arch()
- local vsenv = vcvarsall[arch] or {}
-
- -- switch vstudio environment if vs_sdkver has been changed
- local switch_vsenv = false
- local vs = config.get("vs")
- local vs_sdkver = config.get("vs_sdkver")
- if vs and vs_sdkver and vsenv.WindowsSDKVersion and vs_sdkver ~= vsenv.WindowsSDKVersion then
- switch_vsenv = true
- end
- if switch_vsenv then
- -- find vstudio
- local vstudio = find_vstudio({vcvars_ver = config.get("vs_toolset"), sdkver = vs_sdkver})
- if vstudio then
- vcvarsall = (vstudio[vs] or {}).vcvarsall or {}
- vsenv = vcvarsall[arch] or {}
- if vsenv and vsenv.PATH and vsenv.INCLUDE and vsenv.LIB then
- config.set("__vcvarsall", vcvarsall)
- end
- end
- end
-
-- get the paths for the vs environment
- local new = vsenv[name]
+ local new = vcvars[name]
if new then
toolchain:add("runenvs", name:upper(), path.splitenv(new))
end