From fb56c82abf8e1af7d1b03b93b1eafda02c548f1b Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 9 Apr 2020 13:30:39 +0200 Subject: [PATCH] QbsProjectManager: Fix one more build key inconsistency Amends 26e4a2a758. Fixes: QTCREATORBUG-23841 Change-Id: Ie297f8e2b6a79f6bafa709bf3a0285c9ce6e03ab Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/projectexplorer.cpp | 1 + src/plugins/qbsprojectmanager/qbsnodes.cpp | 8 +++++++- src/plugins/qbsprojectmanager/qbsnodes.h | 2 ++ src/plugins/qbsprojectmanager/qbsproject.cpp | 10 ++-------- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 66b04ba4ef6..c4a15ec5266 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1568,6 +1568,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er const RunConfiguration * const runConfig = target->activeRunConfiguration(); QTC_ASSERT(runConfig, return); ProjectNode * const productNode = runConfig->productNode(); + QTC_ASSERT(productNode, return); QTC_ASSERT(productNode->isProduct(), return); productNode->build(); }); diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index fc632447e79..01bfa6e9761 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -142,7 +142,13 @@ QString QbsProductNode::fullDisplayName() const QString QbsProductNode::buildKey() const { - return fullDisplayName(); + return getBuildKey(productData()); +} + +QString QbsProductNode::getBuildKey(const QJsonObject &product) +{ + return product.value("name").toString() + '.' + + product.value("multiplex-configuration-id").toString(); } QVariant QbsProductNode::data(Core::Id role) const diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index 51c6a76094b..f5a752ad3c8 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -63,6 +63,8 @@ public: QString fullDisplayName() const; QString buildKey() const override; + static QString getBuildKey(const QJsonObject &product); + const QJsonObject productData() const { return m_productData; } QJsonObject mainGroup() const; QVariant data(Core::Id role) const override; diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 8303c24c431..b3264dfb592 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -170,12 +170,6 @@ static bool supportsNodeAction(ProjectAction action, const Node *node) return false; } -static QString buildKeyValue(const QJsonObject &product) -{ - return product.value("name").toString() + '.' - + product.value("multiplex-configuration-id").toString(); -} - QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc) : BuildSystem(bc->target()), m_session(new QbsSession(this)), @@ -925,7 +919,7 @@ static RawProjectParts generateProjectParts( rpp.setProjectFileLocation(location.value("file-path").toString(), location.value("line").toInt(), location.value("column").toInt()); - rpp.setBuildSystemTarget(buildKeyValue(prd)); + rpp.setBuildSystemTarget(QbsProductNode::getBuildKey(prd)); rpp.setBuildTargetType(prd.value("is-runnable").toBool() ? BuildTargetType::Executable : BuildTargetType::Library); @@ -1088,7 +1082,7 @@ void QbsBuildSystem::updateApplicationTargets() } } BuildTargetInfo bti; - bti.buildKey = buildKeyValue(productData); + bti.buildKey = QbsProductNode::getBuildKey(productData); bti.targetFilePath = FilePath::fromString(targetFile); bti.projectFilePath = FilePath::fromString(projectFile); bti.isQtcRunnable = isQtcRunnable; // Fixed up below.