diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 1cbeae98737..e8b3694d312 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -236,6 +236,10 @@ bool AndroidManager::ensureIconAttribute(ProjectExplorer::Target *target) QString AndroidManager::targetSDK(ProjectExplorer::Target *target) { + QVariant v = target->namedSettings(QLatin1String("AndroidManager.TargetSdk")); + if (v.isValid()) + return v.toString(); + QString fallback = QLatin1String("android-8"); if (QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target->kit())) if (qt->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0)) @@ -243,6 +247,7 @@ QString AndroidManager::targetSDK(ProjectExplorer::Target *target) if (!createAndroidTemplatesIfNecessary(target)) return AndroidConfigurations::instance().bestMatch(fallback); + QFile file(defaultPropertiesPath(target).toString()); if (!file.open(QIODevice::ReadOnly)) return AndroidConfigurations::instance().bestMatch(fallback); @@ -257,6 +262,7 @@ QString AndroidManager::targetSDK(ProjectExplorer::Target *target) bool AndroidManager::setTargetSDK(ProjectExplorer::Target *target, const QString &sdk) { updateTarget(target, sdk, applicationName(target)); + target->setNamedSettings(QLatin1String("AndroidManager.TargetSdk"), sdk); return true; } diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index e92bc0240f0..b4e82b6cd2a 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -118,8 +118,6 @@ void AndroidQtVersion::addToEnvironment(const ProjectExplorer::Kit *k, Utils::En if (AndroidConfigurations::instance().config().ndkLocation.isEmpty() || AndroidConfigurations::instance().config().sdkLocation.isEmpty()) return; - if (AndroidConfigurations::instance().sdkTargets().isEmpty()) - return; env.set(QLatin1String("ANDROID_NDK_PLATFORM"), AndroidConfigurations::instance().bestMatch(AndroidManager::targetSDK(target))); diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 922af6c690d..bbd8e3fcf2e 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -64,6 +64,7 @@ const char DC_COUNT_KEY[] = "ProjectExplorer.Target.DeployConfigurationCount"; const char ACTIVE_RC_KEY[] = "ProjectExplorer.Target.ActiveRunConfiguration"; const char RC_KEY_PREFIX[] = "ProjectExplorer.Target.RunConfiguration."; const char RC_COUNT_KEY[] = "ProjectExplorer.Target.RunConfigurationCount"; +const char PLUGIN_SETTINGS_KEY[] = "ProjectExplorer.Target.PluginSettings"; } // namespace @@ -93,6 +94,7 @@ public: RunConfiguration* m_activeRunConfiguration; DeploymentData m_deploymentData; BuildTargetInfoList m_appTargets; + QVariantMap m_pluginSettings; QPixmap m_connectedPixmap; QPixmap m_readyToUsePixmap; @@ -517,6 +519,8 @@ QVariantMap Target::toMap() const for (int i = 0; i < rcs.size(); ++i) map.insert(QString::fromLatin1(RC_KEY_PREFIX) + QString::number(i), rcs.at(i)->toMap()); + map.insert(QLatin1String(PLUGIN_SETTINGS_KEY), d->m_pluginSettings); + return map; } @@ -663,6 +667,19 @@ void Target::updateDefaultRunConfigurations() addRunConfiguration(rc); } +QVariant Target::namedSettings(const QString &name) const +{ + return d->m_pluginSettings.value(name); +} + +void Target::setNamedSettings(const QString &name, const QVariant &value) +{ + if (value.isNull()) + d->m_pluginSettings.remove(name); + else + d->m_pluginSettings.insert(name, value); +} + static QString formatToolTip(const IDevice::DeviceInfo &input) { QStringList lines; @@ -824,6 +841,9 @@ bool Target::fromMap(const QVariantMap &map) setActiveRunConfiguration(rc); } + if (map.contains(QLatin1String(PLUGIN_SETTINGS_KEY))) + d->m_pluginSettings = map.value(QLatin1String(PLUGIN_SETTINGS_KEY)).toMap(); + return true; } diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 3583ffd0c6e..b9f36113c52 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -116,6 +116,8 @@ public: void updateDefaultDeployConfigurations(); void updateDefaultRunConfigurations(); + QVariant namedSettings(const QString &name) const; + void setNamedSettings(const QString &name, const QVariant &value); signals: void targetEnabled(bool); void iconChanged();