summaryrefslogtreecommitdiff
path: root/src/plugins/android/androidconfigurations.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/androidconfigurations.cpp')
-rw-r--r--src/plugins/android/androidconfigurations.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index bc0a939e39..609e5e13e0 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -574,7 +574,9 @@ QVector<AndroidDeviceInfo> AndroidConfig::androidVirtualDevices() const
break;
if (line.contains(QLatin1String("Target:")))
dev.sdk = line.mid(line.lastIndexOf(QLatin1Char(' '))).remove(QLatin1Char(')')).toInt();
- if (line.contains(QLatin1String("ABI:")))
+ if (line.contains(QLatin1String("Tag/ABI:")))
+ dev.cpuAbi = QStringList() << line.mid(line.lastIndexOf(QLatin1Char('/')) +1);
+ else if (line.contains(QLatin1String("ABI:")))
dev.cpuAbi = QStringList() << line.mid(line.lastIndexOf(QLatin1Char(' '))).trimmed();
}
// armeabi-v7a devices can also run armeabi code
@@ -884,8 +886,9 @@ void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs)
m_instance->m_config = devConfigs;
m_instance->save();
- m_instance->updateAutomaticKitList();
m_instance->updateAndroidDevice();
+ m_instance->updateToolChainList();
+ m_instance->updateAutomaticKitList();
emit m_instance->updated();
}
@@ -944,6 +947,32 @@ static bool equalKits(Kit *a, Kit *b)
&& QtSupport::QtKitInformation::qtVersion(a) == QtSupport::QtKitInformation::qtVersion(b);
}
+void AndroidConfigurations::updateToolChainList()
+{
+ QList<ToolChain *> existingToolChains = ToolChainManager::toolChains();
+ QList<ToolChain *> toolchains = AndroidToolChainFactory::createToolChainsForNdk(AndroidConfigurations::currentConfig().ndkLocation());
+ foreach (ToolChain *tc, toolchains) {
+ bool found = false;
+ for (int i = 0; i < existingToolChains.count(); ++i) {
+ if (*(existingToolChains.at(i)) == *tc) {
+ found = true;
+ break;
+ }
+ }
+ if (found)
+ delete tc;
+ else
+ ToolChainManager::registerToolChain(tc);
+ }
+
+ foreach (ToolChain *tc, existingToolChains) {
+ if (tc->type() == QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE)) {
+ if (!tc->isValid())
+ ToolChainManager::deregisterToolChain(tc);
+ }
+ }
+}
+
void AndroidConfigurations::updateAutomaticKitList()
{
QList<AndroidToolChain *> toolchains;