From 934c662b5eaf67ea25c2919e889f84bda679795e Mon Sep 17 00:00:00 2001
From: David Schulz <david.schulz@digia.com>
Date: Fri, 6 Dec 2013 11:26:43 +0100
Subject: [PATCH] ProjectExplorer: Add detection of native 64 bit arm
 toolchain.

Change-Id: I8dbca17849d393bb6bf50ef8287b867aaa71719a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
---
 src/plugins/projectexplorer/msvctoolchain.cpp | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index cb0f7f66868..c200fb921dd 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -462,6 +462,8 @@ QString MsvcToolChainFactory::vcVarsBatFor(const QString &basePath, const QStrin
         return basePath + QLatin1String("/SetEnv.cmd");
     if (toolchainName == QLatin1String("x86"))
         return basePath + QLatin1String("/bin/vcvars32.bat");
+    if (toolchainName == QLatin1String("amd64_arm"))
+        return basePath + QLatin1String("/bin/amd64_arm/vcvarsamd64_arm.bat");
     if (toolchainName == QLatin1String("x86_amd64"))
         return basePath + QLatin1String("/bin/x86_amd64/vcvarsx86_amd64.bat");
     if (toolchainName == QLatin1String("amd64"))
@@ -567,12 +569,21 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
                 }
             }
 
-            if (arch == Utils::HostOsInfo::HostArchitectureX86
-                    || arch == Utils::HostOsInfo::HostArchitectureAMD64) {
+            if (arch == Utils::HostOsInfo::HostArchitectureX86) {
                 if (QFileInfo(vcVarsBatFor(path, QLatin1String("x86_arm"))).isFile())
                     results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::arm),
                                                      findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::arm, vsName),
                                                      vcvarsAllbat, QLatin1String("x86_arm"), ToolChain::AutoDetection));
+            } else if (arch == Utils::HostOsInfo::HostArchitectureAMD64) {
+                if (QFileInfo(vcVarsBatFor(path, QLatin1String("amd64_arm"))).isFile()) {
+                    results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::arm),
+                                                     findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::arm, vsName),
+                                                     vcvarsAllbat, QLatin1String("amd64_arm"), ToolChain::AutoDetection));
+                } else if (QFileInfo(vcVarsBatFor(path, QLatin1String("x86_arm"))).isFile()) {
+                    results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::arm),
+                                                     findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::arm, vsName),
+                                                     vcvarsAllbat, QLatin1String("x86_arm"), ToolChain::AutoDetection));
+                }
             } else if (arch == Utils::HostOsInfo::HostArchitectureArm) {
                 if (QFileInfo(vcVarsBatFor(path, QLatin1String("arm"))).isFile())
                     results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::arm),
-- 
GitLab