Merge remote-tracking branch 'origin/4.3'

Change-Id: I56004e3ec9dc9d92d33bdae438c4f7e069eccc45
This commit is contained in:
Orgad Shaneh
2017-06-02 15:03:36 +03:00
38 changed files with 225 additions and 54 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -45,10 +45,12 @@ AvdDialog::AvdDialog(int minApiLevel, const QString &targetArch, const AndroidCo
m_hideTipTimer.setInterval(2000);
m_hideTipTimer.setSingleShot(true);
if (targetArch.isEmpty())
m_avdDialog.abiComboBox->addItems(QStringList({"armeabi-v7a", "armeabi", "x86", "mips"}));
else
if (targetArch.isEmpty()) {
m_avdDialog.abiComboBox->addItems(QStringList({"armeabi-v7a", "armeabi", "x86", "mips",
"arm64-v8a", "x86_64", "mips64"}));
} else {
m_avdDialog.abiComboBox->addItems(QStringList(targetArch));
}
QRegExpValidator *v = new QRegExpValidator(m_allowedNameChars, this);
m_avdDialog.nameLineEdit->setValidator(v);