diff options
| author | ruki <[email protected]> | 2020-12-17 10:59:28 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-12-17 10:59:28 +0800 |
| commit | e95f99d7d99daf3c065dd04d457b2a8a81545380 (patch) | |
| tree | 72816b1c749dd12e31da06b9b9d97ffc8d057866 /xmake/plugins | |
| parent | 37521d4aa857d57773b0f6cb9311856d3787c6f5 (diff) | |
| parent | 98a044d2947d070d035fe76c651fdbf9f0c3b135 (diff) | |
Merge pull request #1141 from xmake-io/toolchain
Improve toolchain
Diffstat (limited to 'xmake/plugins')
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x.lua | 17 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua | 6 | ||||
| -rw-r--r-- | xmake/plugins/project/vsxmake/getinfo.lua | 7 |
3 files changed, 12 insertions, 18 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua index b19ebadc6..10784c5ea 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x.lua @@ -25,6 +25,7 @@ import("core.project.project") import("core.platform.platform") import("core.tool.compiler") import("core.tool.linker") +import("core.tool.toolchain") import("vs201x_solution") import("vs201x_vcxproj") import("vs201x_vcxproj_filters") @@ -37,9 +38,12 @@ function _make_targetinfo(mode, arch, target) local targetinfo = { mode = mode, arch = (arch == "x86" and "Win32" or "x64") } -- get sdk version - local vcvarsall = config.get("__vcvarsall") - if vcvarsall then - targetinfo.sdkver = (vcvarsall[arch] or {}).WindowsSDKVersion + local msvc = toolchain.load("msvc") + if msvc then + local vcvars = msvc:config("vcvars") + if vcvars then + targetinfo.sdkver = vcvars.WindowsSDKVersion + end end -- save c/c++ precompiled output file (.pch) @@ -233,15 +237,12 @@ function make(outputdir, vsinfo) -- clear project to reload and recheck it project.clear() - -- check configure - config.check() + -- check platform + platform.load(config.plat(), arch):check() -- check project options project.check() - -- reload platform - platform.load(config.plat()) - -- re-generate configheader generate_configheader() end diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua index 3a66a31d2..adfc52757 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua @@ -39,10 +39,8 @@ function _get_toolset_ver(targetinfo, vsinfo) return toolset_ver end --- get platform sdk version +-- get platform sdk version from vcvars.WindowsSDKVersion function _get_platform_sdkver(target, vsinfo) - - -- get sdk version for vcvarsall[arch].WindowsSDKVersion local sdkver = nil for _, targetinfo in ipairs(target.info) do sdkver = targetinfo.sdkver @@ -50,8 +48,6 @@ function _get_platform_sdkver(target, vsinfo) break end end - - -- done return sdkver or vsinfo.sdk_version end diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index 96b4e18ba..7a82036bc 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -296,15 +296,12 @@ function main(outputdir, vsinfo) -- clear project to reload and recheck it project.clear() - -- check configure - config.check() + -- check platform + platform.load(config.plat(), arch):check() -- check project options project.check() - -- reload platform - platform.load(config.plat()) - -- re-generate configheader generate_configheader() |
