forked from qt-creator/qt-creator
Recognize mips64 toolchains from the Android NDK
Adapt a couple mips64-related tests at the same time. Change-Id: I9313419cfe561c7e949f343d2008f7b370ad2b39 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -100,18 +100,21 @@ namespace {
|
||||
const QLatin1String ArmToolchainPrefix("arm-linux-androideabi");
|
||||
const QLatin1String X86ToolchainPrefix("x86");
|
||||
const QLatin1String MipsToolchainPrefix("mipsel-linux-android");
|
||||
const QLatin1String Mips64ToolchainPrefix("mips64el-linux-android");
|
||||
const QLatin1String AArch64ToolchainPrefix("aarch64-linux-android");
|
||||
const QLatin1String X86_64ToolchainPrefix("x86_64");
|
||||
|
||||
const QLatin1String ArmToolsPrefix("arm-linux-androideabi");
|
||||
const QLatin1String X86ToolsPrefix("i686-linux-android");
|
||||
const QLatin1String MipsToolsPrefix("mipsel-linux-android");
|
||||
const QLatin1String Mips64ToolsPrefix("mips64el-linux-android");
|
||||
const QLatin1String AArch64ToolsPrefix("aarch64-linux-android");
|
||||
const QLatin1String X86_64ToolsPrefix("x86_64-linux-android");
|
||||
|
||||
const QLatin1String ArmToolsDisplayName("arm");
|
||||
const QLatin1String X86ToolsDisplayName("i686");
|
||||
const QLatin1String MipsToolsDisplayName("mipsel");
|
||||
const QLatin1String Mips64ToolsDisplayName("mips64el");
|
||||
const QLatin1String AArch64ToolsDisplayName("aarch64");
|
||||
const QLatin1String X86_64ToolsDisplayName("x86_64");
|
||||
|
||||
@@ -172,6 +175,9 @@ Abi AndroidConfig::abiForToolChainPrefix(const QString &toolchainPrefix)
|
||||
} else if (toolchainPrefix == X86_64ToolchainPrefix) {
|
||||
arch = Abi::X86Architecture;
|
||||
wordWidth = 64;
|
||||
} else if (toolchainPrefix == Mips64ToolchainPrefix) {
|
||||
arch = Abi::MipsArchitecture;
|
||||
wordWidth = 64;
|
||||
}
|
||||
|
||||
return Abi(arch, Abi::LinuxOS, Abi::AndroidLinuxFlavor, Abi::ElfFormat, wordWidth);
|
||||
@@ -189,6 +195,8 @@ QLatin1String AndroidConfig::toolchainPrefix(const Abi &abi)
|
||||
return X86_64ToolchainPrefix;
|
||||
return X86ToolchainPrefix;
|
||||
case Abi::MipsArchitecture:
|
||||
if (abi.wordWidth() == 64)
|
||||
return Mips64ToolchainPrefix;
|
||||
return MipsToolchainPrefix;
|
||||
default:
|
||||
return Unknown;
|
||||
@@ -207,6 +215,8 @@ QLatin1String AndroidConfig::toolsPrefix(const Abi &abi)
|
||||
return X86_64ToolsPrefix;
|
||||
return X86ToolsPrefix;
|
||||
case Abi::MipsArchitecture:
|
||||
if (abi.wordWidth() == 64)
|
||||
return Mips64ToolsPrefix;
|
||||
return MipsToolsPrefix;
|
||||
default:
|
||||
return Unknown;
|
||||
@@ -225,6 +235,8 @@ QLatin1String AndroidConfig::displayName(const Abi &abi)
|
||||
return X86_64ToolsDisplayName;
|
||||
return X86ToolsDisplayName;
|
||||
case Abi::MipsArchitecture:
|
||||
if (abi.wordWidth() == 64)
|
||||
return Mips64ToolsDisplayName;
|
||||
return MipsToolsDisplayName;
|
||||
default:
|
||||
return Unknown;
|
||||
|
||||
@@ -311,7 +311,7 @@ QList<AndroidToolChainFactory::AndroidToolChainInformation> AndroidToolChainFact
|
||||
ati.version = fileName.mid(idx + 1);
|
||||
QString platform = fileName.left(idx);
|
||||
ati.abi = AndroidConfig::abiForToolChainPrefix(platform);
|
||||
if (ati.abi.architecture() == Abi::UnknownArchitecture) // e.g. mipsel which is not yet supported
|
||||
if (ati.abi.architecture() == Abi::UnknownArchitecture)
|
||||
continue;
|
||||
ati.compilerCommand = AndroidConfigurations::currentConfig().gccPath(ati.abi, lang, ati.version);
|
||||
result.append(ati);
|
||||
@@ -399,7 +399,7 @@ AndroidToolChainFactory::autodetectToolChainsForNdk(const FileName &ndkPath,
|
||||
QString version = fileName.mid(idx + 1);
|
||||
QString platform = fileName.left(idx);
|
||||
Abi abi = AndroidConfig::abiForToolChainPrefix(platform);
|
||||
if (abi.architecture() == Abi::UnknownArchitecture) // e.g. mipsel which is not yet supported
|
||||
if (abi.architecture() == Abi::UnknownArchitecture)
|
||||
continue;
|
||||
QList<AndroidToolChain *> toolChainBundle;
|
||||
for (Core::Id lang : {ProjectExplorer::Constants::CXX_LANGUAGE_ID, ProjectExplorer::Constants::C_LANGUAGE_ID}) {
|
||||
@@ -447,7 +447,7 @@ QList<int> AndroidToolChainFactory::newestToolChainVersionForArch(const Abi &abi
|
||||
QList<int> version = versionNumberFromString(fileName.mid(idx + 1));
|
||||
QString platform = fileName.left(idx);
|
||||
Abi abi = AndroidConfig::abiForToolChainPrefix(platform);
|
||||
if (abi.architecture() == Abi::UnknownArchitecture) // e.g. mipsel which is not yet supported
|
||||
if (abi.architecture() == Abi::UnknownArchitecture)
|
||||
continue;
|
||||
QHash<Abi, QList<int> >::const_iterator it
|
||||
= m_newestVersionForAbi.constFind(abi);
|
||||
|
||||
Reference in New Issue
Block a user