summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua3
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua4
-rw-r--r--xmake/toolchains/msvc/check.lua1
3 files changed, 8 insertions, 0 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 5d0e730d9..19176b111 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -470,6 +470,9 @@ function _make_vsinfo_archs()
end
end
if not vsinfo_archs then
+ vsinfo_archs = toolchain.load("msvc"):config("vcarchs")
+ end
+ if not vsinfo_archs then
vsinfo_archs = platform.archs()
end
end
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua
index 49bbfe745..4263ff375 100644
--- a/xmake/plugins/project/vsxmake/getinfo.lua
+++ b/xmake/plugins/project/vsxmake/getinfo.lua
@@ -27,6 +27,7 @@ import("core.project.project")
import("core.platform.platform")
import("core.tool.compiler")
import("core.tool.linker")
+import("core.tool.toolchain")
import("core.cache.memcache")
import("core.cache.localcache")
import("lib.detect.find_tool")
@@ -288,6 +289,9 @@ function _make_vsinfo_archs()
end
end
if not vsinfo_archs then
+ vsinfo_archs = toolchain.load("msvc"):config("vcarchs")
+ end
+ if not vsinfo_archs then
vsinfo_archs = platform.archs()
end
end
diff --git a/xmake/toolchains/msvc/check.lua b/xmake/toolchains/msvc/check.lua
index dcaa89bea..6d5772733 100644
--- a/xmake/toolchains/msvc/check.lua
+++ b/xmake/toolchains/msvc/check.lua
@@ -63,6 +63,7 @@ function _check_vsenv(toolchain)
-- save vcvars
toolchain:config_set("vcvars", vcvars)
+ toolchain:config_set("vcarchs", table.orderkeys(vcvarsall))
toolchain:config_set("vs_toolset", vcvars.VCToolsVersion)
toolchain:config_set("vs_sdkver", vcvars.WindowsSDKVersion)