diff options
| author | ruki <[email protected]> | 2020-12-13 22:31:27 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-12-13 22:31:27 +0800 |
| commit | 0f7d4ef7bf2c3d9e04fc104defb50e8c7f6583f1 (patch) | |
| tree | 65723a232e796794dc41c4c74d98fa7addc27818 /xmake/toolchains/msvc/load.lua | |
| parent | 38b7c45ae4b1c58d4734ab027fd520d9a397a383 (diff) | |
cache toolchain configs
Diffstat (limited to 'xmake/toolchains/msvc/load.lua')
| -rw-r--r-- | xmake/toolchains/msvc/load.lua | 31 |
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 |
