diff options
author | El Mehdi Fekari <mfekari@rim.com> | 2013-07-01 15:09:10 +0200 |
---|---|---|
committer | Mehdi Fekari <mfekari@blackberry.com> | 2013-07-04 14:14:06 +0200 |
commit | 10f2e59aed9964f6c1d284651b3c724d98061efb (patch) | |
tree | 7ceabb8930421c325e59e8a72d2740a0af2e7560 /src/plugins/qnx | |
parent | 6773d47a635df1da3945cf4023304592a7adb67e (diff) | |
download | qt-creator-10f2e59aed9964f6c1d284651b3c724d98061efb.tar.gz |
Qnx: Add BlackBerry kits for qt5
Qt5 is available in the internal 10.2 NDK builds.
N.B: This is for testing purpose (internal developers).
Change-Id: I0858e05f5902d602a0f921ed22f34b79d557a10a
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Diffstat (limited to 'src/plugins/qnx')
-rw-r--r-- | src/plugins/qnx/blackberryconfiguration.cpp | 94 | ||||
-rw-r--r-- | src/plugins/qnx/blackberryconfiguration.h | 9 | ||||
-rw-r--r-- | src/plugins/qnx/blackberryndksettingswidget.cpp | 3 |
3 files changed, 70 insertions, 36 deletions
diff --git a/src/plugins/qnx/blackberryconfiguration.cpp b/src/plugins/qnx/blackberryconfiguration.cpp index ad30e0f88d..ca41547337 100644 --- a/src/plugins/qnx/blackberryconfiguration.cpp +++ b/src/plugins/qnx/blackberryconfiguration.cpp @@ -83,6 +83,24 @@ bool BlackBerryConfiguration::setNdkPath(const QString &ndkPath) return refresh(); } +void BlackBerryConfiguration::setupNdkConfigPerQtVersion(const Utils::FileName &qmakePath, ProjectExplorer::GccToolChain *tc) +{ + QtSupport::BaseQtVersion *qtVersion = createQtVersion(qmakePath); + ProjectExplorer::Kit *deviceKit = createKit(ArmLeV7, qtVersion, tc); + ProjectExplorer::Kit *simulatorKit = createKit(X86, qtVersion, tc); + if (qtVersion && tc && deviceKit && simulatorKit) { + if (!qtVersion->qtAbis().isEmpty()) + tc->setTargetAbi(qtVersion->qtAbis().first()); + // register + QtSupport::QtVersionManager::instance()->addVersion(qtVersion); + ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); + ProjectExplorer::KitManager::instance()->registerKit(deviceKit); + ProjectExplorer::KitManager::instance()->registerKit(simulatorKit); + + emit updated(); + } +} + bool BlackBerryConfiguration::refresh() { m_config.qnxEnv = QnxUtils::parseEnvironmentFile(QnxUtils::envFilePath(m_config.ndkPath)); @@ -95,15 +113,16 @@ bool BlackBerryConfiguration::refresh() m_config.sysRoot = Utils::FileName::fromString(ndkTarget); QString qnxHost = m_config.qnxEnv.value(QLatin1String("QNX_HOST")); - Utils::FileName qmakePath = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/qmake"))); + Utils::FileName qmake4Path = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/qmake"))); + Utils::FileName qmake5Path = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/qt5/qmake"))); Utils::FileName gccPath = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/qcc"))); Utils::FileName deviceGdbPath = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/ntoarm-gdb"))); Utils::FileName simulatorGdbPath = QnxUtils::executableWithExtension(Utils::FileName::fromString(qnxHost + QLatin1String("/usr/bin/ntox86-gdb"))); - if (!qmakePath.toFileInfo().exists() || !gccPath.toFileInfo().exists() + if ((!qmake4Path.toFileInfo().exists() && !qmake5Path.toFileInfo().exists()) || !gccPath.toFileInfo().exists() || !deviceGdbPath.toFileInfo().exists() || !simulatorGdbPath.toFileInfo().exists() ) { QString errorMessage = tr("The following errors occurred while setting up BB10 Configuration:"); - if (!qmakePath.toFileInfo().exists()) + if (!qmake4Path.toFileInfo().exists() && !qmake5Path.toFileInfo().exists()) errorMessage += QLatin1Char('\n') + tr("- No Qt version found."); if (!gccPath.toFileInfo().exists()) @@ -120,7 +139,12 @@ bool BlackBerryConfiguration::refresh() return false; } - m_config.qmakeBinaryFile = qmakePath; + if (qmake4Path.toFileInfo().exists()) + m_config.qmake4BinaryFile = qmake4Path; + + if (qmake5Path.toFileInfo().exists()) + m_config.qmake5BinaryFile = qmake5Path; + m_config.gccCompiler = gccPath; m_config.deviceDebuger = deviceGdbPath; m_config.simulatorDebuger = simulatorGdbPath; @@ -205,34 +229,35 @@ void BlackBerryConfiguration::setupNdkConfiguration(const QString &ndkPath) return; if (setNdkPath(ndkPath)) { - QtSupport::BaseQtVersion *qtVersion = createQtVersion(); ProjectExplorer::GccToolChain *tc = createGccToolChain(); - ProjectExplorer::Kit *deviceKit = createKit(ArmLeV7, qtVersion, tc); - ProjectExplorer::Kit *simulatorKit = createKit(X86, qtVersion, tc); - if (qtVersion && tc && deviceKit && simulatorKit) { - if (!qtVersion->qtAbis().isEmpty()) - tc->setTargetAbi(qtVersion->qtAbis().first()); - // register - QtSupport::QtVersionManager::instance()->addVersion(qtVersion); - ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); - ProjectExplorer::KitManager::instance()->registerKit(deviceKit); - ProjectExplorer::KitManager::instance()->registerKit(simulatorKit); - - emit updated(); - } + + if (!m_config.qmake4BinaryFile.isEmpty()) + setupNdkConfigPerQtVersion(m_config.qmake4BinaryFile, tc); + + if (!m_config.qmake5BinaryFile.isEmpty()) + setupNdkConfigPerQtVersion(m_config.qmake5BinaryFile, tc); } } void BlackBerryConfiguration::cleanNdkConfiguration() { - QtSupport::BaseQtVersion *version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(m_config.qmakeBinaryFile); - if (version) { + QtSupport::BaseQtVersion *qt4Version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(m_config.qmake4BinaryFile); + QtSupport::BaseQtVersion *qt5Version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(m_config.qmake5BinaryFile); + if (qt4Version || qt5Version) { foreach (ProjectExplorer::Kit *kit, ProjectExplorer::KitManager::instance()->kits()) { - if (version == QtSupport::QtKitInformation::qtVersion(kit)) + if (qt4Version && qt4Version == QtSupport::QtKitInformation::qtVersion(kit)) { + ProjectExplorer::KitManager::instance()->deregisterKit(kit); + } else if (qt5Version && qt5Version == QtSupport::QtKitInformation::qtVersion(kit)) { ProjectExplorer::KitManager::instance()->deregisterKit(kit); + } } - QtSupport::QtVersionManager::instance()->removeVersion(version); + if (qt4Version) + QtSupport::QtVersionManager::instance()->removeVersion(qt4Version); + + if (qt5Version) + QtSupport::QtVersionManager::instance()->removeVersion(qt5Version); + } foreach (ProjectExplorer::ToolChain* tc, ProjectExplorer::ToolChainManager::instance()->toolChains()) { @@ -295,34 +320,34 @@ BlackBerryCertificate * BlackBerryConfiguration::activeCertificate() return m_config.activeCertificate; } -QtSupport::BaseQtVersion *BlackBerryConfiguration::createQtVersion() +QtSupport::BaseQtVersion *BlackBerryConfiguration::createQtVersion(const Utils::FileName &qmakePath) { - if (m_config.qmakeBinaryFile.isEmpty()) + if (qmakePath.isEmpty()) return 0; QString cpuDir = m_config.qnxEnv.value(QLatin1String("CPUVARDIR")); - QtSupport::BaseQtVersion *version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(m_config.qmakeBinaryFile); + QtSupport::BaseQtVersion *version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(qmakePath); if (version) { QMessageBox::warning(0, tr("Qt Version Already Known"), tr("This Qt version was already registered."), QMessageBox::Ok); return version; } - version = new BlackBerryQtVersion(QnxUtils::cpudirToArch(cpuDir), m_config.qmakeBinaryFile, false, QString(), m_config.ndkPath); + version = new BlackBerryQtVersion(QnxUtils::cpudirToArch(cpuDir), qmakePath, false, QString(), m_config.ndkPath); if (!version) { QMessageBox::warning(0, tr("Invalid Qt Version"), tr("Unable to add BlackBerry Qt version."), QMessageBox::Ok); return 0; } - version->setDisplayName(QString::fromLatin1("Qt BlackBerry 10 (%1)").arg(m_config.targetName)); + version->setDisplayName(QString::fromLatin1("Qt %1 BlackBerry 10 (%2)").arg(version->qtVersionString(), m_config.targetName)); return version; } ProjectExplorer::GccToolChain *BlackBerryConfiguration::createGccToolChain() { - if (m_config.qmakeBinaryFile.isEmpty() || m_config.gccCompiler.isEmpty()) + if ((m_config.qmake4BinaryFile.isEmpty() && m_config.qmake5BinaryFile.isEmpty()) || m_config.gccCompiler.isEmpty()) return 0; foreach (ProjectExplorer::ToolChain* tc, ProjectExplorer::ToolChainManager::instance()->toolChains()) { @@ -368,10 +393,10 @@ ProjectExplorer::Kit *BlackBerryConfiguration::createKit(QnxArchitecture arch, Q Debugger::DebuggerKitInformation::setDebuggerCommand(kit, m_config.simulatorDebuger); Qt4ProjectManager::QmakeKitInformation::setMkspec(kit, Utils::FileName::fromString(QString::fromLatin1("blackberry-x86-qcc"))); // TODO: Check if the name already exists(?) - kit->setDisplayName(tr("BlackBerry 10 (%1) - Simulator").arg(m_config.targetName)); + kit->setDisplayName(tr("BlackBerry 10 (%1 - %2) - Simulator").arg(qtVersion->qtVersionString(), m_config.targetName)); } else { Debugger::DebuggerKitInformation::setDebuggerCommand(kit, m_config.deviceDebuger); - kit->setDisplayName(tr("BlackBerry 10 (%1)").arg(m_config.targetName)); + kit->setDisplayName(tr("BlackBerry 10 (%1 - %2)").arg(qtVersion->qtVersionString(), m_config.targetName)); } kit->setIconPath(QLatin1String(Constants::QNX_BB_CATEGORY_ICON)); @@ -423,9 +448,14 @@ BlackBerryConfig BlackBerryConfiguration::config() const return m_config; } -Utils::FileName BlackBerryConfiguration::qmakePath() const +Utils::FileName BlackBerryConfiguration::qmake4Path() const +{ + return m_config.qmake4BinaryFile; +} + +Utils::FileName BlackBerryConfiguration::qmake5Path() const { - return m_config.qmakeBinaryFile; + return m_config.qmake5BinaryFile; } Utils::FileName BlackBerryConfiguration::gccPath() const diff --git a/src/plugins/qnx/blackberryconfiguration.h b/src/plugins/qnx/blackberryconfiguration.h index d538f610ef..8ea1887b10 100644 --- a/src/plugins/qnx/blackberryconfiguration.h +++ b/src/plugins/qnx/blackberryconfiguration.h @@ -54,7 +54,8 @@ class BlackBerryConfig { QString ndkPath; QString targetName; - Utils::FileName qmakeBinaryFile; + Utils::FileName qmake4BinaryFile; + Utils::FileName qmake5BinaryFile; Utils::FileName gccCompiler; Utils::FileName deviceDebuger; Utils::FileName simulatorDebuger; @@ -72,7 +73,8 @@ class BlackBerryConfiguration: public QObject public: static BlackBerryConfiguration &instance(); BlackBerryConfig config() const; - Utils::FileName qmakePath() const; + Utils::FileName qmake4Path() const; + Utils::FileName qmake5Path() const; Utils::FileName gccPath() const; Utils::FileName deviceGdbPath() const; Utils::FileName simulatorGdbPath() const; @@ -110,7 +112,8 @@ private: void saveNdkSettings(); bool refresh(); bool setNdkPath(const QString &ndkPath); - QtSupport::BaseQtVersion* createQtVersion(); + void setupNdkConfigPerQtVersion(const Utils::FileName &qmakePath, ProjectExplorer::GccToolChain* tc); + QtSupport::BaseQtVersion* createQtVersion(const Utils::FileName &qmakePath); ProjectExplorer::GccToolChain* createGccToolChain(); ProjectExplorer::Kit* createKit(QnxArchitecture arch, QtSupport::BaseQtVersion* qtVersion, ProjectExplorer::GccToolChain* tc); diff --git a/src/plugins/qnx/blackberryndksettingswidget.cpp b/src/plugins/qnx/blackberryndksettingswidget.cpp index d1618d5236..d501022131 100644 --- a/src/plugins/qnx/blackberryndksettingswidget.cpp +++ b/src/plugins/qnx/blackberryndksettingswidget.cpp @@ -137,7 +137,8 @@ void BlackBerryNDKSettingsWidget::updateInfoTable() m_infoModel->appendRow(row); } - m_infoModel->appendRow( QList<QStandardItem*>() << new QStandardItem(QString(QLatin1String("QMAKE"))) << new QStandardItem(m_bbConfig->qmakePath().toString())); + m_infoModel->appendRow( QList<QStandardItem*>() << new QStandardItem(QString(QLatin1String("QMAKE 4"))) << new QStandardItem(m_bbConfig->qmake4Path().toString())); + m_infoModel->appendRow( QList<QStandardItem*>() << new QStandardItem(QString(QLatin1String("QMAKE 5"))) << new QStandardItem(m_bbConfig->qmake5Path().toString())); m_infoModel->appendRow( QList<QStandardItem*>() << new QStandardItem(QString(QLatin1String("COMPILER"))) << new QStandardItem(m_bbConfig->gccPath().toString())); m_ui->removeButton->setEnabled(true); |