summaryrefslogtreecommitdiff
path: root/xmake/plugins
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-17 10:59:28 +0800
committerGitHub <[email protected]>2020-12-17 10:59:28 +0800
commite95f99d7d99daf3c065dd04d457b2a8a81545380 (patch)
tree72816b1c749dd12e31da06b9b9d97ffc8d057866 /xmake/plugins
parent37521d4aa857d57773b0f6cb9311856d3787c6f5 (diff)
parent98a044d2947d070d035fe76c651fdbf9f0c3b135 (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.lua17
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua6
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua7
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()