Commit 317fe1f4 authored by El Mehdi Fekari's avatar El Mehdi Fekari Committed by Mehdi Fekari
Browse files

Qnx: Add support for pure QNX configurations



This is a first patch that adds basic support to manage
user's QNX configurations.

Change-Id: I273939d39e4353dabc2ae3873d7d7be6b3ca9d47
Reviewed-by: default avatarSergio Ahumada <sahumada@blackberry.com>
parent f1795d97
......@@ -71,7 +71,6 @@ const QLatin1String NDKPathKey("NDKPath");
const QLatin1String NDKDisplayNameKey("NDKDisplayName");
const QLatin1String NDKTargetKey("NDKTarget");
const QLatin1String NDKHostKey("NDKHost");
const QLatin1String NDKVersionKey("NDKVersion");
const QLatin1String NDKAutoDetectionSourceKey("NDKAutoDetectionSource");
const QLatin1String NDKAutoDetectedKey("NDKAutoDetectedKey");
......@@ -79,7 +78,7 @@ const QLatin1String NDKAutoDetectedKey("NDKAutoDetectedKey");
bool BlackBerryApiLevelConfiguration::m_fakeConfig = false;
#endif
BlackBerryApiLevelConfiguration::BlackBerryApiLevelConfiguration(const NdkInstallInformation &ndkInstallInfo)
BlackBerryApiLevelConfiguration::BlackBerryApiLevelConfiguration(const ConfigInstallInformation &ndkInstallInfo)
: QnxBaseConfiguration(FileName::fromString(
QnxUtils::envFilePath(ndkInstallInfo.path, ndkInstallInfo.version)))
{
......@@ -88,8 +87,8 @@ BlackBerryApiLevelConfiguration::BlackBerryApiLevelConfiguration(const NdkInstal
// The QNX_TARGET value is using Unix-like separator on all platforms.
m_targetName = ndkInstallInfo.target.split(sep).first().split(QLatin1Char('/')).last();
m_sysRoot = FileName::fromString(ndkInstallInfo.target);
m_version = BlackBerryVersionNumber(ndkInstallInfo.version);
m_autoDetectionSource = Utils::FileName::fromString(ndkInstallInfo.installationXmlFilePath);
setVersion(QnxVersionNumber(ndkInstallInfo.version));
ctor();
}
......@@ -104,9 +103,9 @@ BlackBerryApiLevelConfiguration::BlackBerryApiLevelConfiguration(const FileName
if (QDir(ndkTarget).exists())
m_sysRoot = FileName::fromString(ndkTarget);
m_version = BlackBerryVersionNumber::fromNdkEnvFileName(QFileInfo(envFile().toString()).baseName());
if (m_version.isEmpty())
m_version = BlackBerryVersionNumber::fromTargetName(m_targetName);
setVersion(QnxVersionNumber::fromNdkEnvFileName(QFileInfo(envFile().toString()).baseName()));
if (version().isEmpty())
setVersion(QnxVersionNumber::fromTargetName(m_targetName));
ctor();
}
......@@ -119,7 +118,6 @@ BlackBerryApiLevelConfiguration::BlackBerryApiLevelConfiguration(const QVariantM
// The QNX_TARGET value is using Unix-like separator on all platforms.
m_targetName = data.value(NDKTargetKey).toString().split(sep).first().split(QLatin1Char('/')).last();
m_sysRoot = FileName::fromString(data.value(NDKTargetKey).toString());
m_version = BlackBerryVersionNumber(data.value(NDKVersionKey).toString());
if (data.value(QLatin1String(NDKAutoDetectedKey)).toBool())
m_autoDetectionSource = Utils::FileName::fromString(data.value(NDKAutoDetectionSourceKey).toString());
......@@ -153,11 +151,6 @@ QString BlackBerryApiLevelConfiguration::targetName() const
return m_targetName;
}
BlackBerryVersionNumber BlackBerryApiLevelConfiguration::version() const
{
return m_version;
}
bool BlackBerryApiLevelConfiguration::isAutoDetected() const
{
return !m_autoDetectionSource.isEmpty();
......@@ -217,7 +210,6 @@ QVariantMap BlackBerryApiLevelConfiguration::toMap() const
data.insert(QLatin1String(NDKDisplayNameKey), m_displayName);
data.insert(QLatin1String(NDKPathKey), ndkPath());
data.insert(QLatin1String(NDKTargetKey), m_sysRoot.toString());
data.insert(QLatin1String(NDKVersionKey), m_version.toString());
data.insert(QLatin1String(NDKAutoDetectionSourceKey), m_autoDetectionSource.toString());
data.insert(QLatin1String(NDKAutoDetectedKey), isAutoDetected());
return data;
......@@ -310,8 +302,8 @@ bool BlackBerryApiLevelConfiguration::activate()
deactivate(); // cleaning-up artifacts autodetected by old QtCreator versions
QString armVersionName = tr("BlackBerry %1 Device").arg(m_version.toString());
QString x86VersionName = tr("BlackBerry %1 Simulator").arg(m_version.toString());
QString armVersionName = tr("BlackBerry %1 Device").arg(version().toString());
QString x86VersionName = tr("BlackBerry %1 Simulator").arg(version().toString());
// create versions
QnxAbstractQtVersion *qt4ArmVersion = 0;
......
......@@ -33,7 +33,7 @@
#define BLACKBERRYCONFIGURATIONS_H
#include "qnxutils.h"
#include "blackberryversionnumber.h"
#include "qnxversionnumber.h"
#include "qnxbaseconfiguration.h"
#include "qnxconstants.h"
......@@ -59,7 +59,7 @@ class BlackBerryApiLevelConfiguration : public QnxBaseConfiguration
{
Q_DECLARE_TR_FUNCTIONS(Qnx::Internal::BlackBerryApiLevelConfiguration)
public:
BlackBerryApiLevelConfiguration(const NdkInstallInformation &ndkInstallInfo);
BlackBerryApiLevelConfiguration(const ConfigInstallInformation &ndkInstallInfo);
BlackBerryApiLevelConfiguration(const Utils::FileName &ndkEnvFile);
BlackBerryApiLevelConfiguration(const QVariantMap &data);
bool activate();
......@@ -67,7 +67,6 @@ public:
QString ndkPath() const;
QString displayName() const;
QString targetName() const;
BlackBerryVersionNumber version() const;
bool isAutoDetected() const;
Utils::FileName autoDetectionSource() const;
bool isActive() const;
......@@ -92,7 +91,6 @@ protected:
private:
QString m_displayName;
QString m_targetName;
BlackBerryVersionNumber m_version;
Utils::FileName m_autoDetectionSource;
Utils::FileName m_qmake4BinaryFile;
Utils::FileName m_qmake5BinaryFile;
......
......@@ -89,7 +89,7 @@ BlackBerryApplicationRunner::BlackBerryApplicationRunner(const BlackBerryApplica
m_deployCmd = m_environment.searchInPath(QLatin1String(Constants::QNX_BLACKBERRY_DEPLOY_CMD));
QFileInfo fi(target->kit()->autoDetectionSource());
m_bbApiLevelVersion = BlackBerryVersionNumber::fromNdkEnvFileName(fi.baseName());
m_bbApiLevelVersion = QnxVersionNumber::fromNdkEnvFileName(fi.baseName());
m_device = BlackBerryDeviceConfiguration::device(target->kit());
m_barPackage = runConfiguration->barPackage();
......
......@@ -34,7 +34,7 @@
#include "blackberrydeviceconfiguration.h"
#include "blackberryprocessparser.h"
#include "blackberryversionnumber.h"
#include "qnxversionnumber.h"
#include <projectexplorer/runconfiguration.h>
......@@ -138,7 +138,7 @@ private:
QTimer *m_runningStateTimer;
QProcess *m_runningStateProcess;
BlackBerryVersionNumber m_bbApiLevelVersion;
QnxVersionNumber m_bbApiLevelVersion;
int m_qmlDebugServerPort;
QProcess *m_checkQmlJsDebugArgumentsProcess;
......
......@@ -33,7 +33,7 @@
#include "blackberrycheckdevicestatusstepconfigwidget.h"
#include "blackberrydeviceinformation.h"
#include "blackberryversionnumber.h"
#include "qnxversionnumber.h"
#include "qnxconstants.h"
#include <projectexplorer/buildconfiguration.h>
......@@ -131,7 +131,7 @@ void BlackBerryCheckDeviceStatusStep::checkDeviceInfo(int status)
}
if (m_runtimeCheckEnabled) {
BlackBerryVersionNumber deviceRuntimeVersion(m_deviceInfo->scmBundle());
QnxVersionNumber deviceRuntimeVersion(m_deviceInfo->scmBundle());
QFileInfo fi(target()->kit()->autoDetectionSource());
if (deviceRuntimeVersion.isEmpty()) {
......@@ -141,7 +141,7 @@ void BlackBerryCheckDeviceStatusStep::checkDeviceInfo(int status)
return;
}
BlackBerryVersionNumber apiLevelVersion = BlackBerryVersionNumber::fromNdkEnvFileName(fi.baseName());
QnxVersionNumber apiLevelVersion = QnxVersionNumber::fromNdkEnvFileName(fi.baseName());
if (apiLevelVersion.isEmpty()) {
// Skip the check if device API level version is not determined
m_eventLoop->exit(true);
......
......@@ -210,7 +210,7 @@ void BlackBerryConfigurationManager::loadManualConfigurations()
void BlackBerryConfigurationManager::loadAutoDetectedApiLevels()
{
foreach (const NdkInstallInformation &ndkInfo, QnxUtils::installedNdks()) {
foreach (const ConfigInstallInformation &ndkInfo, QnxUtils::installedConfigs()) {
BlackBerryApiLevelConfiguration *config = new BlackBerryApiLevelConfiguration(ndkInfo);
if (!addApiLevel(config)) {
delete config;
......@@ -502,27 +502,27 @@ BlackBerryConfigurationManager::~BlackBerryConfigurationManager()
QString BlackBerryConfigurationManager::barsignerCskPath() const
{
return QnxUtils::dataDirPath() + QLatin1String("/barsigner.csk");
return QnxUtils::bbDataDirPath() + QLatin1String("/barsigner.csk");
}
QString BlackBerryConfigurationManager::idTokenPath() const
{
return QnxUtils::dataDirPath() + QLatin1String("/bbidtoken.csk");
return QnxUtils::bbDataDirPath() + QLatin1String("/bbidtoken.csk");
}
QString BlackBerryConfigurationManager::barsignerDbPath() const
{
return QnxUtils::dataDirPath() + QLatin1String("/barsigner.db");
return QnxUtils::bbDataDirPath() + QLatin1String("/barsigner.db");
}
QString BlackBerryConfigurationManager::defaultKeystorePath() const
{
return QnxUtils::dataDirPath() + QLatin1String("/author.p12");
return QnxUtils::bbDataDirPath() + QLatin1String("/author.p12");
}
QString BlackBerryConfigurationManager::defaultDebugTokenPath() const
{
return QnxUtils::dataDirPath() + QLatin1String("/debugtoken.bar");
return QnxUtils::bbDataDirPath() + QLatin1String("/debugtoken.bar");
}
} // namespace Internal
......
......@@ -208,7 +208,7 @@ void BlackBerryInstallWizardNdkPage::initializePage()
QFont font;
font.setItalic(true);
m_manual->setFont(font);
foreach (const NdkInstallInformation &ndk, QnxUtils::installedNdks()) {
foreach (const ConfigInstallInformation &ndk, QnxUtils::installedConfigs()) {
bool found = false;
for (int i = 0; i < m_ui->ndkPathListWidget->count(); i++) {
QListWidgetItem* item = m_ui->ndkPathListWidget->item(i);
......@@ -421,7 +421,7 @@ void BlackBerryInstallWizardProcessPage::initializePage()
return;
}
foreach (const NdkInstallInformation &ndk, QnxUtils::installedNdks()) {
foreach (const ConfigInstallInformation &ndk, QnxUtils::installedConfigs()) {
if (ndk.version == m_data.version) {
m_data.ndkPath = ndk.path;
m_data.target = ndk.name;
......
......@@ -391,7 +391,7 @@ void BlackBerryNDKSettingsWidget::handleUninstallationFinished()
const QString targetName = current->text(0);
// Check if the target is corrrecly uninstalled
foreach (const NdkInstallInformation &ndk, QnxUtils::installedNdks()) {
foreach (const ConfigInstallInformation &ndk, QnxUtils::installedConfigs()) {
if (ndk.name == targetName)
return;
}
......
......@@ -46,13 +46,13 @@ const QLatin1String VersionKey("Version");
BlackBerryRuntimeConfiguration::BlackBerryRuntimeConfiguration(
const QString &path,
const BlackBerryVersionNumber &version)
const QnxVersionNumber &version)
: m_path(path)
{
if (!version.isEmpty())
m_version = version;
else
m_version = BlackBerryVersionNumber::fromFileName(QFileInfo(path).baseName(),
m_version = QnxVersionNumber::fromFileName(QFileInfo(path).baseName(),
QRegExp(QLatin1String("^runtime_(.*)$")));
m_displayName = QCoreApplication::translate("Qnx::Internal::BlackBerryRuntimeConfiguration", "Runtime %1").arg(m_version.toString());
......@@ -62,7 +62,7 @@ BlackBerryRuntimeConfiguration::BlackBerryRuntimeConfiguration(const QVariantMap
{
m_path = data.value(QLatin1String(PathKey)).toString();
m_displayName = data.value(QLatin1String(DisplayNameKey)).toString();
m_version = BlackBerryVersionNumber(data.value(QLatin1String(VersionKey)).toString());
m_version = QnxVersionNumber(data.value(QLatin1String(VersionKey)).toString());
}
QString BlackBerryRuntimeConfiguration::path() const
......@@ -75,7 +75,7 @@ QString BlackBerryRuntimeConfiguration::displayName() const
return m_displayName;
}
BlackBerryVersionNumber BlackBerryRuntimeConfiguration::version() const
QnxVersionNumber BlackBerryRuntimeConfiguration::version() const
{
return m_version;
}
......
......@@ -32,7 +32,7 @@
#ifndef BLACKBERRYRUNTIMECONFIGURATION_H
#define BLACKBERRYRUNTIMECONFIGURATION_H
#include "blackberryversionnumber.h"
#include "qnxversionnumber.h"
#include <QVariantMap>
......@@ -42,18 +42,18 @@ class BlackBerryRuntimeConfiguration
{
public:
BlackBerryRuntimeConfiguration(const QString &path,
const BlackBerryVersionNumber &version = BlackBerryVersionNumber());
const QnxVersionNumber &version = QnxVersionNumber());
BlackBerryRuntimeConfiguration(const QVariantMap &data);
QString path() const;
QString displayName() const;
BlackBerryVersionNumber version() const;
QnxVersionNumber version() const;
QVariantMap toMap() const;
private:
QString m_path;
QString m_displayName;
BlackBerryVersionNumber m_version;
QnxVersionNumber m_version;
};
}
......
......@@ -177,7 +177,7 @@ APILevelSetupItem::FoundTypes APILevelSetupItem::resolvedFoundType()
FoundTypes found;
// TODO: for now, all Trunk versions are understood as 10.2 compliant
BlackBerryVersionNumber version_10_2(QLatin1String("10.2.0.0"));
QnxVersionNumber version_10_2(QLatin1String("10.2.0.0"));
foreach (BlackBerryApiLevelConfiguration *config,
BlackBerryConfigurationManager::instance()->apiLevels()) {
found |= Any;
......
......@@ -91,7 +91,6 @@ SOURCES += qnxplugin.cpp \
qnxdeviceprocesslist.cpp \
qnxtoolchain.cpp \
slog2inforunner.cpp \
blackberryversionnumber.cpp \
blackberrydebugtokenpinsdialog.cpp \
blackberrycheckdevicestatusstepfactory.cpp \
blackberrycheckdevicestatusstepconfigwidget.cpp \
......@@ -107,7 +106,11 @@ SOURCES += qnxplugin.cpp \
bardescriptorfilenode.cpp \
bardescriptorfilenodemanager.cpp \
qnxconfiguration.cpp \
qnxbaseconfiguration.cpp
qnxbaseconfiguration.cpp \
qnxsettingswidget.cpp \
qnxconfigurationmanager.cpp \
qnxsettingspage.cpp \
qnxversionnumber.cpp
HEADERS += qnxplugin.h\
qnxconstants.h \
......@@ -199,7 +202,6 @@ HEADERS += qnxplugin.h\
qnxdeviceprocesslist.h \
qnxtoolchain.h \
slog2inforunner.h \
blackberryversionnumber.h \
blackberrydebugtokenpinsdialog.h \
blackberrycheckdevicestatusstep.h \
blackberrycheckdevicestatusstepfactory.h \
......@@ -215,7 +217,11 @@ HEADERS += qnxplugin.h\
bardescriptorfilenode.h \
bardescriptorfilenodemanager.h \
qnxconfiguration.h \
qnxbaseconfiguration.h
qnxbaseconfiguration.h \
qnxsettingswidget.h \
qnxconfigurationmanager.h \
qnxsettingspage.h \
qnxversionnumber.h
FORMS += \
blackberrydeviceconfigurationwizardsetuppage.ui \
......@@ -245,7 +251,8 @@ FORMS += \
blackberryinstallwizardoptionpage.ui \
blackberrydebugtokenpinsdialog.ui \
blackberrycheckdevicestatusstepconfigwidget.ui \
blackberrydeployqtlibrariesdialog.ui
blackberrydeployqtlibrariesdialog.ui \
qnxsettingswidget.ui
include(../../private_headers.pri)
include(./cascadesimport/cascadesimport.pri)
......
......@@ -197,8 +197,6 @@ QtcPlugin {
"blackberrysshkeysgenerator.h",
"blackberrysigningutils.cpp",
"blackberrysigningutils.h",
"blackberryversionnumber.cpp",
"blackberryversionnumber.h",
"pathchooserdelegate.cpp",
"pathchooserdelegate.h",
"qnxtoolchain.cpp",
......@@ -244,6 +242,15 @@ QtcPlugin {
"qnxdeviceprocesssignaloperation.h",
"qnxdevicetester.cpp",
"qnxdevicetester.h",
"qnxsettingswidget.cpp",
"qnxsettingswidget.h",
"qnxsettingswidget.ui",
"qnxconfigurationmanager.cpp",
"qnxconfigurationmanager.h",
"qnxsettingspage.cpp",
"qnxsettingspage.h",
"qnxversionnumber.cpp",
"qnxversionnumber.h",
"qnxplugin.cpp",
"qnxplugin.h",
"qnxqtversion.cpp",
......
......@@ -6,5 +6,7 @@
<file>images/info.png</file>
<file>images/warning.png</file>
<file>images/error.png</file>
<file>images/qnx-target.png</file>
</qresource>
<qresource prefix="/"/>
</RCC>
......@@ -47,9 +47,11 @@ namespace Qnx {
namespace Internal {
const QLatin1String QNXEnvFileKey("EnvFile");
const QLatin1String QNXVersionKey("QNXVersion");
// For backward compatibility
const QLatin1String NDKEnvFileKey("NDKEnvFile");
using namespace Utils;
using namespace ProjectExplorer;
......@@ -68,6 +70,7 @@ QnxBaseConfiguration::QnxBaseConfiguration(const QVariantMap &data)
if (envFilePath.isEmpty())
envFilePath = data.value(NDKEnvFileKey).toString();
m_version = QnxVersionNumber(data.value(QNXVersionKey).toString());
ctor(FileName::fromString(envFilePath));
}
......@@ -110,10 +113,16 @@ QList<EnvironmentItem> QnxBaseConfiguration::qnxEnv() const
return m_qnxEnv;
}
QnxVersionNumber QnxBaseConfiguration::version() const
{
return m_version;
}
QVariantMap QnxBaseConfiguration::toMap() const
{
QVariantMap data;
data.insert(QLatin1String(QNXEnvFileKey), m_envFile.toString());
data.insert(QLatin1String(QNXVersionKey), m_version.toString());
return data;
}
......@@ -201,5 +210,10 @@ QStringList QnxBaseConfiguration::validationErrors() const
return errorStrings;
}
void QnxBaseConfiguration::setVersion(const QnxVersionNumber &version)
{
m_version = version;
}
}
}
......@@ -33,6 +33,7 @@
#include "qnxconstants.h"
#include "qnxutils.h"
#include "qnxversionnumber.h"
#include <utils/fileutils.h>
#include <utils/environment.h>
......@@ -64,6 +65,7 @@ public:
Utils::FileName armDebuggerPath() const;
Utils::FileName x86DebuggerPath() const;
QList<Utils::EnvironmentItem> qnxEnv() const;
QnxVersionNumber version() const;
QVariantMap toMap() const;
virtual bool isValid() const;
......@@ -80,6 +82,7 @@ protected:
const QString &ndkPath);
virtual QStringList validationErrors() const;
void setVersion(const QnxVersionNumber& version);
private:
Utils::FileName m_envFile;
Utils::FileName m_qnxTarget;
......@@ -88,8 +91,10 @@ private:
Utils::FileName m_armlev7Debugger;
Utils::FileName m_x86Debugger;
QList<Utils::EnvironmentItem> m_qnxEnv;
QnxVersionNumber m_version;
void ctor(const Utils::FileName &envFile);
};
}
......
......@@ -29,23 +29,52 @@
****************************************************************************/
#include "qnxconfiguration.h"
#include "qnxqtversion.h"
#include "qnxutils.h"
#include "qnxtoolchain.h"
#include "debugger/debuggeritem.h"
#include <projectexplorer/toolchainmanager.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitmanager.h>
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtversionmanager.h>
#include <qtsupport/qtkitinformation.h>
#include <qmakeprojectmanager/qmakekitinformation.h>
#include <debugger/debuggeritemmanager.h>
#include <debugger/debuggerkitinformation.h>
#include <coreplugin/icore.h>
#include <QMessageBox>
#include <QFileInfo>
using namespace ProjectExplorer;
using namespace QtSupport;
using namespace Utils;
using namespace Debugger;
namespace Qnx {
namespace Internal {
QnxConfiguration::QnxConfiguration(const Utils::FileName &sdpEnvFile)
: QnxBaseConfiguration(sdpEnvFile)
{
readInformation();
}
QnxConfiguration::QnxConfiguration(const QVariantMap &data)
: QnxBaseConfiguration(data)
{
readInformation();
}
QString QnxConfiguration::displayName() const
{
return m_configName;
}
bool QnxConfiguration::activate()
......@@ -64,19 +93,23 @@ bool QnxConfiguration::activate()
}
// Create and register toolchain
createToolChain(QnxArchitecture::ArmLeV7,
tr("QCC for QNX armlev7"),
QnxToolChain *armTc = createToolChain(ArmLeV7,
tr("QCC for %1 (armlev7)").arg(displayName()),
sdpPath().toString());
createToolChain(QnxArchitecture::X86,
tr("QCC for QNX x86"),
QnxToolChain *x86Tc = createToolChain(X86,
tr("QCC for %1 (x86)").arg(displayName()),
sdpPath().toString());
// Create and register debuggers
createDebuggerItem(QnxArchitecture::ArmLeV7,
tr("Debugger for QNX armlev7"));
QVariant armDebuggerId = createDebuggerItem(ArmLeV7,
tr("Debugger for %1 (armlev7)").arg(displayName()));
QVariant x86DebuggerId = createDebuggerItem(X86,
tr("Debugger for %1 (x86)").arg(displayName()));
createDebuggerItem(QnxArchitecture::X86,
tr("Debugger for QNX x86"));
// Create and register kits
createKit(ArmLeV7, armTc, armDebuggerId, tr("Kit for %1 (Device)").arg(displayName()));
createKit(X86, x86Tc, x86DebuggerId, tr("Kit for %1 (Simulator)").arg(displayName()));
return true;
}
......@@ -86,19 +119,34 @@ void QnxConfiguration::deactivate()
if (!isActive())
return;
QList<ProjectExplorer::ToolChain *> toolChainsToRemove;
QList<Debugger::DebuggerItem> debuggersToRemove;
foreach (ProjectExplorer::ToolChain *tc,
ProjectExplorer::ToolChainManager::toolChains()) {
if (tc->compilerCommand() == qccCompilerPath())
ProjectExplorer::ToolChainManager::deregisterToolChain(tc);
toolChainsToRemove.append(tc);
}
foreach (Debugger::DebuggerItem debuggerItem,
Debugger::DebuggerItemManager::debuggers()) {
if (debuggerItem.command() == armDebuggerPath() ||
debuggerItem.command() == x86DebuggerPath())
Debugger::DebuggerItemManager::
deregisterDebugger(debuggerItem.id());
debuggersToRemove.append(debuggerItem);
}
foreach (Kit *kit, KitManager::kits()) {
if (kit->isAutoDetected()
&& DeviceTypeKitInformation::deviceTypeId(kit) == Constants::QNX_BB_OS_TYPE
&& toolChainsToRemove.contains(ToolChainKitInformation::toolChain(kit)))
KitManager::deregisterKit(kit);
}
foreach (ProjectExplorer::ToolChain *tc, toolChainsToRemove)
ProjectExplorer::ToolChainManager::deregisterToolChain(tc);
foreach (Debugger::DebuggerItem debuggerItem, debuggersToRemove)
Debugger::DebuggerItemManager::
deregisterDebugger(debuggerItem.id());
}
bool QnxConfiguration::isActive() const
......@@ -125,10 +173,92 @@ bool QnxConfiguration::isActive() const
return hasToolChain && hasDebugger;
}
bool QnxConfiguration::canCreateKits() const
{
return isValid() && (qnxQtVersion(ArmLeV7) || qnxQtVersion(X86));
}