From 723d4a973f26bf723f5c95949b8b489100118206 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 17 Oct 2013 13:12:45 +0200 Subject: [PATCH] Android: Distinguish between platforms in the ndk and the sdk The available platforms in the ndk might not be the same as in the sdk. This patch is renames everything using the ndk platform list to ndkPlatforms, except the highestAvailablePlatform which wrongly uses the ndk platform list. Change-Id: I02d9b68bbc27b0c748281678fe654d5f4244578d Reviewed-by: BogDan Vatra --- src/plugins/android/androidconfigurations.cpp | 20 +++++++++---------- src/plugins/android/androidconfigurations.h | 6 +++--- src/plugins/android/androidqtversion.cpp | 3 +-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index ad76118014b..392f4ee9d87 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -223,22 +223,22 @@ void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs) detectToolchainHost(); save(); - updateAvailablePlatforms(); + updateAvailableNdkPlatforms(); updateAutomaticKitList(); updateAndroidDevice(); emit updated(); } -void AndroidConfigurations::updateAvailablePlatforms() +void AndroidConfigurations::updateAvailableNdkPlatforms() { - m_availablePlatforms.clear(); + m_availableNdkPlatforms.clear(); FileName path = m_config.ndkLocation; QDirIterator it(path.appendPath(QLatin1String("platforms")).toString(), QStringList() << QLatin1String("android-*"), QDir::Dirs); while (it.hasNext()) { const QString &fileName = it.next(); - m_availablePlatforms.push_back(fileName.mid(fileName.lastIndexOf(QLatin1Char('-')) + 1).toInt()); + m_availableNdkPlatforms.push_back(fileName.mid(fileName.lastIndexOf(QLatin1Char('-')) + 1).toInt()); } - qSort(m_availablePlatforms.begin(), m_availablePlatforms.end(), qGreater()); + qSort(m_availableNdkPlatforms.begin(), m_availableNdkPlatforms.end(), qGreater()); } QStringList AndroidConfigurations::sdkTargets(int minApiLevel) const @@ -737,15 +737,15 @@ QStringList AndroidConfigurations::getAbis(const QString &device) const QString AndroidConfigurations::highestAvailableAndroidPlatform() const { - if (m_availablePlatforms.isEmpty()) + if (m_availableNdkPlatforms.isEmpty()) return QString(); - return QLatin1String("android-") + QString::number(m_availablePlatforms.first()); + return QLatin1String("android-") + QString::number(m_availableNdkPlatforms.first()); } -QString AndroidConfigurations::bestMatch(const QString &targetAPI) const +QString AndroidConfigurations::bestNdkPlatformMatch(const QString &targetAPI) const { int target = targetAPI.mid(targetAPI.lastIndexOf(QLatin1Char('-')) + 1).toInt(); - foreach (int apiLevel, m_availablePlatforms) { + foreach (int apiLevel, m_availableNdkPlatforms) { if (apiLevel <= target) return QString::fromLatin1("android-%1").arg(apiLevel); } @@ -901,7 +901,7 @@ AndroidConfigurations::AndroidConfigurations(QObject *parent) : QObject(parent) { load(); - updateAvailablePlatforms(); + updateAvailableNdkPlatforms(); connect(ProjectExplorer::SessionManager::instance(), SIGNAL(projectRemoved(ProjectExplorer::Project*)), this, SLOT(clearDefaultDevices(ProjectExplorer::Project*))); diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index a8d044a2052..5fc114c355c 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -107,7 +107,7 @@ public: QString startAVD(const QString &name, int apiLevel, QString cpuAbi) const; bool startAVDAsync(const QString &avdName) const; QString waitForAvd(int apiLevel, const QString &cpuAbi) const; - QString bestMatch(const QString &targetAPI) const; + QString bestNdkPlatformMatch(const QString &targetAPI) const; QStringList makeExtraSearchDirectories() const; @@ -145,12 +145,12 @@ private: int getSDKVersion(const QString &device) const; QStringList getAbis(const QString &device) const; - void updateAvailablePlatforms(); + void updateAvailableNdkPlatforms(); static AndroidConfigurations *m_instance; AndroidConfig m_config; - QVector m_availablePlatforms; + QVector m_availableNdkPlatforms; mutable QHash m_serialNumberToDeviceName; QMap > m_defaultDeviceForAbi; diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index b31af28d3c8..62988127978 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -122,8 +122,7 @@ void AndroidQtVersion::addToEnvironment(const ProjectExplorer::Kit *k, Utils::En return; env.set(QLatin1String("ANDROID_NDK_PLATFORM"), - AndroidConfigurations::instance().bestMatch(AndroidManager::buildTargetSDK(target))); - + AndroidConfigurations::instance().bestNdkPlatformMatch(AndroidManager::buildTargetSDK(target))); } QString AndroidQtVersion::description() const