forked from qt-creator/qt-creator
QbsProjectManager: Fix uniqueProductName() and productDisplayName()
These still assumed we can only multiplex on profiles. Change-Id: Ice3dfe06c1be732ecae42db75155e930b0554b6f Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This commit is contained in:
@@ -103,13 +103,13 @@ QbsProjectManager::Internal::QbsGroupNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
|
void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
|
||||||
const qbs::ProductData &prd, const qbs::Project &project)
|
const qbs::ProductData &prd)
|
||||||
{
|
{
|
||||||
using namespace QbsProjectManager::Internal;
|
using namespace QbsProjectManager::Internal;
|
||||||
|
|
||||||
node->setEnabled(prd.isEnabled());
|
node->setEnabled(prd.isEnabled());
|
||||||
|
|
||||||
node->setDisplayName(QbsProject::productDisplayName(project, prd));
|
node->setDisplayName(prd.fullDisplayName());
|
||||||
node->setAbsoluteFilePathAndLine(Utils::FileName::fromString(prd.location().filePath()).parentDir(), -1);
|
node->setAbsoluteFilePathAndLine(Utils::FileName::fromString(prd.location().filePath()).parentDir(), -1);
|
||||||
const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath();
|
const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath();
|
||||||
|
|
||||||
@@ -137,12 +137,11 @@ void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
|
|||||||
setupArtifacts(genFiles, prd.generatedArtifacts());
|
setupArtifacts(genFiles, prd.generatedArtifacts());
|
||||||
}
|
}
|
||||||
|
|
||||||
QbsProjectManager::Internal::QbsProductNode *
|
QbsProjectManager::Internal::QbsProductNode *buildProductNodeTree(const qbs::ProductData &prd)
|
||||||
buildProductNodeTree(const qbs::Project &project, const qbs::ProductData &prd)
|
|
||||||
{
|
{
|
||||||
auto result = new QbsProjectManager::Internal::QbsProductNode(prd);
|
auto result = new QbsProjectManager::Internal::QbsProductNode(prd);
|
||||||
|
|
||||||
setupQbsProductData(result, prd, project);
|
setupQbsProductData(result, prd);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,7 +161,7 @@ void setupProjectNode(QbsProjectManager::Internal::QbsProjectNode *node, const q
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach (const qbs::ProductData &prd, prjData.products())
|
foreach (const qbs::ProductData &prd, prjData.products())
|
||||||
node->addNode(buildProductNodeTree(qbsProject, prd));
|
node->addNode(buildProductNodeTree(prd));
|
||||||
|
|
||||||
if (!prjData.name().isEmpty())
|
if (!prjData.name().isEmpty())
|
||||||
node->setDisplayName(prjData.name());
|
node->setDisplayName(prjData.name());
|
||||||
|
|||||||
@@ -640,18 +640,9 @@ void QbsProject::generateErrors(const qbs::ErrorInfo &e)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QbsProject::productDisplayName(const qbs::Project &project,
|
|
||||||
const qbs::ProductData &product)
|
|
||||||
{
|
|
||||||
QString displayName = product.name();
|
|
||||||
if (product.profile() != project.profile())
|
|
||||||
displayName.append(QLatin1String(" [")).append(product.profile()).append(QLatin1Char(']'));
|
|
||||||
return displayName;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString QbsProject::uniqueProductName(const qbs::ProductData &product)
|
QString QbsProject::uniqueProductName(const qbs::ProductData &product)
|
||||||
{
|
{
|
||||||
return product.name() + QLatin1Char('.') + product.profile();
|
return product.name() + QLatin1Char('.') + product.multiplexConfigurationId();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsProject::configureAsExampleProject(const QSet<Id> &platforms)
|
void QbsProject::configureAsExampleProject(const QSet<Id> &platforms)
|
||||||
@@ -1113,7 +1104,7 @@ void QbsProject::updateApplicationTargets()
|
|||||||
foreach (const qbs::ProductData &productData, m_projectData.allProducts()) {
|
foreach (const qbs::ProductData &productData, m_projectData.allProducts()) {
|
||||||
if (!productData.isEnabled() || !productData.isRunnable())
|
if (!productData.isEnabled() || !productData.isRunnable())
|
||||||
continue;
|
continue;
|
||||||
const QString displayName = productDisplayName(m_qbsProject, productData);
|
const QString displayName = productData.fullDisplayName();
|
||||||
if (productData.targetArtifacts().isEmpty()) { // No build yet.
|
if (productData.targetArtifacts().isEmpty()) { // No build yet.
|
||||||
applications.list << BuildTargetInfo(displayName,
|
applications.list << BuildTargetInfo(displayName,
|
||||||
FileName(),
|
FileName(),
|
||||||
|
|||||||
@@ -101,8 +101,6 @@ public:
|
|||||||
bool needsSpecialDeployment() const override;
|
bool needsSpecialDeployment() const override;
|
||||||
void generateErrors(const qbs::ErrorInfo &e);
|
void generateErrors(const qbs::ErrorInfo &e);
|
||||||
|
|
||||||
static QString productDisplayName(const qbs::Project &project,
|
|
||||||
const qbs::ProductData &product);
|
|
||||||
static QString uniqueProductName(const qbs::ProductData &product);
|
static QString uniqueProductName(const qbs::ProductData &product);
|
||||||
|
|
||||||
void configureAsExampleProject(const QSet<Core::Id> &platforms) final;
|
void configureAsExampleProject(const QSet<Core::Id> &platforms) final;
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ QList<BuildTargetInfo> QbsRunConfigurationFactory::availableBuildTargets(Target
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Utils::transform(products, [project](const qbs::ProductData &product) {
|
return Utils::transform(products, [project](const qbs::ProductData &product) {
|
||||||
QString displayName = QbsProject::productDisplayName(project->qbsProject(), product);
|
QString displayName = product.fullDisplayName();
|
||||||
BuildTargetInfo bti;
|
BuildTargetInfo bti;
|
||||||
bti.targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName;
|
bti.targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName;
|
||||||
bti.displayName = displayName;
|
bti.displayName = displayName;
|
||||||
|
|||||||
Reference in New Issue
Block a user