diff options
| author | El Mehdi Fekari <mfekari@blackberry.com> | 2013-12-10 11:19:55 +0100 |
|---|---|---|
| committer | Mehdi Fekari <mfekari@blackberry.com> | 2013-12-12 18:48:31 +0100 |
| commit | bd309397ede43954d6ea00df1b95d462b65477ac (patch) | |
| tree | ed939d690e5b7643125f27b58fe3a166904d346a | |
| parent | e32f560a7fce6748118bc06beb0c890cf6ee7dd3 (diff) | |
| download | qt-creator-bd309397ede43954d6ea00df1b95d462b65477ac.tar.gz | |
Qnx: Set auto detection source for generated kits
Set the auto detection source for generated kits
to the target's ndk env file path. This ease the way
to deactivate configurations and handles targets sharing
the same QNX_HOST.
Task-number: QTCREATORBUG-10818
Change-Id: I823fb498f54e52c704a806234e7b4a0a6c8da4e7
Reviewed-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
| -rw-r--r-- | src/plugins/qnx/blackberryconfiguration.cpp | 59 | ||||
| -rw-r--r-- | src/plugins/qnx/blackberryconfiguration.h | 1 | ||||
| -rw-r--r-- | src/plugins/qnx/blackberryconfigurationmanager.cpp | 22 | ||||
| -rw-r--r-- | src/plugins/qnx/blackberryconfigurationmanager.h | 1 |
4 files changed, 43 insertions, 40 deletions
diff --git a/src/plugins/qnx/blackberryconfiguration.cpp b/src/plugins/qnx/blackberryconfiguration.cpp index ec6f95587d..3404e6f7eb 100644 --- a/src/plugins/qnx/blackberryconfiguration.cpp +++ b/src/plugins/qnx/blackberryconfiguration.cpp @@ -169,7 +169,13 @@ bool BlackBerryConfiguration::isAutoDetected() const bool BlackBerryConfiguration::isActive() const { - return !findRegisteredQtVersions().isEmpty(); + foreach (Kit *kit, KitManager::kits()) { + if (kit->isAutoDetected() && + kit->autoDetectionSource() == m_ndkEnvFile.toString()) + return true; + } + + return false; } bool BlackBerryConfiguration::isValid() const @@ -277,6 +283,7 @@ Kit *BlackBerryConfiguration::createKit( kit->setIconPath(FileName::fromString(QLatin1String(Constants::QNX_BB_CATEGORY_ICON))); kit->setAutoDetected(true); + kit->setAutoDetectionSource(m_ndkEnvFile.toString()); kit->setMutable(DeviceKitInformation::id(), true); kit->setSticky(QtKitInformation::id(), true); @@ -370,50 +377,24 @@ bool BlackBerryConfiguration::activate() return true; } -QList<BaseQtVersion *> BlackBerryConfiguration::findRegisteredQtVersions() const -{ - QList<BaseQtVersion *> versions; - foreach (BaseQtVersion *version, QtVersionManager::versions()) { - if (version->type() == QLatin1String(Constants::QNX_BB_QT)) { - QnxAbstractQtVersion *qnxVersion = dynamic_cast<QnxAbstractQtVersion *>(version); - if (qnxVersion && qnxVersion->isAutodetected() - && (qnxVersion->qmakeCommand() == qmake4BinaryFile() - || qnxVersion->qmakeCommand() == qmake5BinaryFile())) - versions << qnxVersion; - } - } - return versions; -} - void BlackBerryConfiguration::deactivate() { - QList<BaseQtVersion *> versions = findRegisteredQtVersions(); - QList<ToolChain *> toolChains; foreach (Kit *kit, KitManager::kits()) { - if (kit->isAutoDetected()) { + if (kit->isAutoDetected() && + kit->autoDetectionSource() == ndkEnvFile().toString()) { BaseQtVersion *version = QtKitInformation::qtVersion(kit); - if (versions.contains(version)) { - ToolChain *toolChain = ToolChainKitInformation::toolChain(kit); - if (toolChain) - toolChains << toolChain; - KitManager::deregisterKit(kit); - } + ToolChain *toolChain = ToolChainKitInformation::toolChain(kit); + const DebuggerItem *debugger = DebuggerKitInformation::debugger(kit); + if (version) + QtVersionManager::removeVersion(version); + if (toolChain) + ToolChainManager::deregisterToolChain(toolChain); + if (debugger) + DebuggerItemManager::deregisterDebugger(debugger->id()); + + KitManager::deregisterKit(kit); } } - - foreach (const DebuggerItem &item, DebuggerItemManager::debuggers()) - if (item.isAutoDetected() && - (item.command() == m_simulatorDebugger || item.command() == m_deviceDebugger)) - DebuggerItemManager::deregisterDebugger(item.id()); - - foreach (ToolChain *toolChain, ToolChainManager::toolChains()) - if (toolChain->isAutoDetected() - && (toolChains.contains(toolChain) || toolChain->compilerCommand() == m_gccCompiler)) - ToolChainManager::deregisterToolChain(toolChain); - - foreach (BaseQtVersion *version, versions) - QtVersionManager::removeVersion(version); - } } // namespace Internal diff --git a/src/plugins/qnx/blackberryconfiguration.h b/src/plugins/qnx/blackberryconfiguration.h index 9701e43485..8bc2c4ee1c 100644 --- a/src/plugins/qnx/blackberryconfiguration.h +++ b/src/plugins/qnx/blackberryconfiguration.h @@ -108,7 +108,6 @@ private: ProjectExplorer::Kit* createKit( QnxAbstractQtVersion* version, QnxToolChain* toolChain, const QVariant &debuggerItemId); - QList<QtSupport::BaseQtVersion *> findRegisteredQtVersions() const; }; } // namespace Internal diff --git a/src/plugins/qnx/blackberryconfigurationmanager.cpp b/src/plugins/qnx/blackberryconfigurationmanager.cpp index a7f265dcc9..10d4c9ffbd 100644 --- a/src/plugins/qnx/blackberryconfigurationmanager.cpp +++ b/src/plugins/qnx/blackberryconfigurationmanager.cpp @@ -49,6 +49,8 @@ #include <qtsupport/qtversionmanager.h> #include <qtsupport/qtkitinformation.h> +#include <debugger/debuggerkitinformation.h> + #include <QMessageBox> #include <QFileInfo> @@ -212,6 +214,23 @@ void BlackBerryConfigurationManager::clearInvalidConfigurations() } } +void BlackBerryConfigurationManager::setKitsAutoDetectionSource() +{ + foreach (Kit *kit, KitManager::kits()) { + if (kit->isAutoDetected() && + (DeviceTypeKitInformation::deviceTypeId(kit) == Constants::QNX_BB_CATEGORY_ICON) && + kit->autoDetectionSource().isEmpty()) { + QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit); + foreach (BlackBerryConfiguration *config, m_configs) { + if ((version && + (version->qmakeCommand() == config->qmake4BinaryFile() || version->qmakeCommand() == config->qmake5BinaryFile())) + && (SysRootKitInformation::sysRoot(kit) == config->sysRoot())) + kit->setAutoDetectionSource(config->ndkEnvFile().toString()); + } + } + } +} + // Switch to QnxToolchain for exisintg configuration using GccToolChain void BlackBerryConfigurationManager::checkToolChainConfiguration() { @@ -320,6 +339,9 @@ QList<Utils::EnvironmentItem> BlackBerryConfigurationManager::defaultQnxEnv() void BlackBerryConfigurationManager::loadSettings() { + // Backward compatibility: Set kit's auto detection source + // for existing BlackBerry kits that do not have it set yet. + setKitsAutoDetectionSource(); clearInvalidConfigurations(); loadAutoDetectedConfigurations(); loadManualConfigurations(); diff --git a/src/plugins/qnx/blackberryconfigurationmanager.h b/src/plugins/qnx/blackberryconfigurationmanager.h index 97602e0633..7934a2adc6 100644 --- a/src/plugins/qnx/blackberryconfigurationmanager.h +++ b/src/plugins/qnx/blackberryconfigurationmanager.h @@ -84,6 +84,7 @@ private: void saveManualConfigurations(); void saveActiveConfigurationNdkEnvPath(); void clearInvalidConfigurations(); + void setKitsAutoDetectionSource(); QStringList activeConfigurationNdkEnvPaths(); }; |
