diff --git a/src/plugins/qnx/qnxconfiguration.cpp b/src/plugins/qnx/qnxconfiguration.cpp index 295b942c4f5376c7009fd3486a9107ad2c6c97ff..22718c63851edddd4d5b6aa84b33238c6b014abc 100644 --- a/src/plugins/qnx/qnxconfiguration.cpp +++ b/src/plugins/qnx/qnxconfiguration.cpp @@ -276,6 +276,7 @@ QnxToolChain *QnxConfiguration::createToolChain(const Target &target) .arg(displayName()) .arg(target.shortDescription())); toolChain->setSdpPath(sdpPath().toString()); + toolChain->setCpuDir(target.cpuDir()); toolChain->resetToolChain(qccCompilerPath()); ToolChainManager::registerToolChain(toolChain); return toolChain; diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 1ae34f2a7a00f1a6f6807c3a663133323ca2faa0..99a90c89a95afd466d67b0c1b7929bd3464d66af 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -42,6 +42,7 @@ namespace Qnx { namespace Internal { static const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath"; +static const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir"; static QList<Abi> detectTargetAbis(const FileName &sdpPath) { @@ -146,6 +147,7 @@ QVariantMap QnxToolChain::toMap() const { QVariantMap data = GccToolChain::toMap(); data.insert(QLatin1String(CompilerSdpPath), m_sdpPath); + data.insert(QLatin1String(CpuDirKey), m_cpuDir); return data; } @@ -155,6 +157,7 @@ bool QnxToolChain::fromMap(const QVariantMap &data) return false; m_sdpPath = data.value(QLatin1String(CompilerSdpPath)).toString(); + m_cpuDir = data.value(QLatin1String(CpuDirKey)).toString(); // Make the ABIs QNX specific (if they aren't already). setSupportedAbis(QnxUtils::convertAbis(supportedAbis())); @@ -176,11 +179,34 @@ void QnxToolChain::setSdpPath(const QString &sdpPath) toolChainUpdated(); } +QString QnxToolChain::cpuDir() const +{ + return m_cpuDir; +} + +void QnxToolChain::setCpuDir(const QString &cpuDir) +{ + if (m_cpuDir == cpuDir) + return; + m_cpuDir = cpuDir; + toolChainUpdated(); +} + GccToolChain::DetectedAbisResult QnxToolChain::detectSupportedAbis() const { return detectTargetAbis(FileName::fromString(m_sdpPath)); } +bool QnxToolChain::operator ==(const ToolChain &other) const +{ + if (!GccToolChain::operator ==(other)) + return false; + + auto qnxTc = static_cast<const QnxToolChain *>(&other); + + return m_sdpPath == qnxTc->m_sdpPath && m_cpuDir == qnxTc->m_cpuDir; +} + // -------------------------------------------------------------------------- // QnxToolChainFactory // -------------------------------------------------------------------------- diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h index 93f2c15bc60e4de1c51543058f10bc2fe2150e0b..1d930a80d3d1ad4ea81626535fd1e1fc104f6eb3 100644 --- a/src/plugins/qnx/qnxtoolchain.h +++ b/src/plugins/qnx/qnxtoolchain.h @@ -49,12 +49,17 @@ public: QString sdpPath() const; void setSdpPath(const QString &sdpPath); + QString cpuDir() const; + void setCpuDir(const QString &cpuDir); + + bool operator ==(const ToolChain &) const override; protected: virtual DetectedAbisResult detectSupportedAbis() const override; private: QString m_sdpPath; + QString m_cpuDir; }; // --------------------------------------------------------------------------