forked from qt-creator/qt-creator
Arm64: Separate Arm64 from Arm on Windows
The separation is the first step of proper supporting the native Visual C++ Arm64 that is now in preview in Visual Studio v17.3 Change-Id: I8cfa4b5b248158db68cb4af081dd59cabcd28c95 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -65,8 +65,9 @@ HostOsInfo::HostArchitecture HostOsInfo::hostArchitecture()
|
||||
case PROCESSOR_ARCHITECTURE_IA64:
|
||||
return HostOsInfo::HostArchitectureItanium;
|
||||
case PROCESSOR_ARCHITECTURE_ARM:
|
||||
case PROCESSOR_ARCHITECTURE_ARM64:
|
||||
return HostOsInfo::HostArchitectureArm;
|
||||
case PROCESSOR_ARCHITECTURE_ARM64:
|
||||
return HostOsInfo::HostArchitectureArm64;
|
||||
default:
|
||||
return HostOsInfo::HostArchitectureUnknown;
|
||||
}
|
||||
|
@@ -60,7 +60,7 @@ public:
|
||||
}
|
||||
|
||||
enum HostArchitecture { HostArchitectureX86, HostArchitectureAMD64, HostArchitectureItanium,
|
||||
HostArchitectureArm, HostArchitectureUnknown };
|
||||
HostArchitectureArm, HostArchitectureArm64, HostArchitectureUnknown };
|
||||
static HostArchitecture hostArchitecture();
|
||||
|
||||
static constexpr bool isWindowsHost() { return hostOs() == OsTypeWindows; }
|
||||
|
@@ -670,7 +670,7 @@ void DebuggerItemManagerPrivate::autoDetectCdbDebuggers()
|
||||
for (const QFileInfo &kitFolderFi : kitFolders) {
|
||||
const QString path = kitFolderFi.absoluteFilePath();
|
||||
QStringList abis = {"x86", "x64"};
|
||||
if (HostOsInfo::hostArchitecture() == HostOsInfo::HostArchitectureArm)
|
||||
if (HostOsInfo::hostArchitecture() == HostOsInfo::HostArchitectureArm64)
|
||||
abis << "arm64";
|
||||
for (const QString &abi: abis) {
|
||||
const QFileInfo cdbBinary(path + "/Debuggers/" + abi + "/cdb.exe");
|
||||
|
@@ -147,6 +147,9 @@ static bool hostPrefersPlatform(MsvcToolChain::Platform platform)
|
||||
|| platform == MsvcToolChain::x86_arm64;
|
||||
case HostOsInfo::HostArchitectureArm:
|
||||
return platform == MsvcToolChain::arm;
|
||||
case HostOsInfo::HostArchitectureArm64:
|
||||
return platform == MsvcToolChain::arm64
|
||||
|| platform == MsvcToolChain::arm64_x86 || platform == MsvcToolChain::arm64_amd64;
|
||||
case HostOsInfo::HostArchitectureItanium:
|
||||
return platform == MsvcToolChain::ia64;
|
||||
default:
|
||||
@@ -167,7 +170,7 @@ static bool hostSupportsPlatform(MsvcToolChain::Platform platform)
|
||||
|| platform == MsvcToolChain::x86_ia64 || platform == MsvcToolChain::x86_arm
|
||||
|| platform == MsvcToolChain::x86_arm64;
|
||||
// The Arm64 host can run the cross-compilers via emulation of x86 and amd64
|
||||
case HostOsInfo::HostArchitectureArm:
|
||||
case HostOsInfo::HostArchitectureArm64:
|
||||
return platform == MsvcToolChain::x86_arm || platform == MsvcToolChain::x86_arm64
|
||||
|| platform == MsvcToolChain::amd64_arm || platform == MsvcToolChain::amd64_arm64
|
||||
|| platform == MsvcToolChain::x86 || platform == MsvcToolChain::x86_amd64
|
||||
|
@@ -58,7 +58,7 @@ class MsvcToolChain : public ToolChain
|
||||
public:
|
||||
enum Type { WindowsSDK, VS };
|
||||
enum Platform { x86, amd64, x86_amd64, ia64, x86_ia64, arm, x86_arm, amd64_arm, amd64_x86,
|
||||
x86_arm64, amd64_arm64 };
|
||||
x86_arm64, amd64_arm64, arm64, arm64_x86, arm64_amd64 };
|
||||
|
||||
explicit MsvcToolChain(Utils::Id typeId);
|
||||
~MsvcToolChain() override;
|
||||
|
Reference in New Issue
Block a user