summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-05-10 22:29:55 +0800
committerruki <[email protected]>2024-05-10 22:29:55 +0800
commit183d83075a29d30acd8c27132f151c5db13bc951 (patch)
tree4ef74adc789038f16d9be090318a2546816bd871
parent5699981509737cef679890125c84d48405496118 (diff)
improve host arch for msvc
-rw-r--r--xmake/modules/detect/sdks/find_vstudio.lua16
1 files changed, 12 insertions, 4 deletions
diff --git a/xmake/modules/detect/sdks/find_vstudio.lua b/xmake/modules/detect/sdks/find_vstudio.lua
index ad1d933a0..617940d67 100644
--- a/xmake/modules/detect/sdks/find_vstudio.lua
+++ b/xmake/modules/detect/sdks/find_vstudio.lua
@@ -120,14 +120,22 @@ function _load_vcvarsall(vcvarsall, vsver, arch, opt)
end
local host_arch = os.arch()
if is_vsdevcmd then
- if opt.vcvars_ver then
- file:print("call \"%s\" -host_arch=%s -arch=%s -winsdk=%s -vcvars_ver=%s > nul", vcvarsall, host_arch, arch, opt.sdkver and opt.sdkver or "", opt.vcvars_ver)
+ if vsver and tonumber(vsver) >= 16 then
+ if opt.vcvars_ver then
+ file:print("call \"%s\" -host_arch=%s -arch=%s -winsdk=%s -vcvars_ver=%s > nul", vcvarsall, host_arch, arch, opt.sdkver and opt.sdkver or "", opt.vcvars_ver)
+ else
+ file:print("call \"%s\" -host_arch=%s -arch=%s -winsdk=%s > nul", vcvarsall, host_arch, arch, opt.sdkver and opt.sdkver or "")
+ end
else
- file:print("call \"%s\" -host_arch=%s -arch=%s -winsdk=%s > nul", vcvarsall, host_arch, arch, opt.sdkver and opt.sdkver or "")
+ if opt.vcvars_ver then
+ file:print("call \"%s\" -arch=%s -winsdk=%s -vcvars_ver=%s > nul", vcvarsall, arch, opt.sdkver and opt.sdkver or "", opt.vcvars_ver)
+ else
+ file:print("call \"%s\" -arch=%s -winsdk=%s > nul", vcvarsall, arch, opt.sdkver and opt.sdkver or "")
+ end
end
else
-- @see https://github.com/xmake-io/xmake/issues/5077
- if host_arch ~= arch then
+ if vsver and tonumber(vsver) >= 16 and host_arch ~= arch then
if host_arch == "x64" then
host_arch = "amd64"
end