forked from qt-creator/qt-creator
QbsPM: Support qtcRunnable property to filter out peripheral products
... by default. Similar to qmake qtc_runnable. Apply in app.qbs. Change-Id: I8d43027f683ef18fc5a2745afe9775eb14075e69 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
623d571bad
commit
bb331566bd
@@ -22,6 +22,7 @@ QtcProduct {
|
|||||||
version: project.qtcreator_version
|
version: project.qtcreator_version
|
||||||
|
|
||||||
installDir: project.ide_bin_path
|
installDir: project.ide_bin_path
|
||||||
|
property bool qtcRunnable: true
|
||||||
|
|
||||||
cpp.rpaths: qbs.targetOS.contains("osx") ? ["@executable_path/../Frameworks"]
|
cpp.rpaths: qbs.targetOS.contains("osx") ? ["@executable_path/../Frameworks"]
|
||||||
: ["$ORIGIN/../" + project.libDirName + "/qtcreator"]
|
: ["$ORIGIN/../" + project.libDirName + "/qtcreator"]
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
|
#include <utils/algorithm.h>
|
||||||
#include <utils/qtcprocess.h>
|
#include <utils/qtcprocess.h>
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
#include <utils/detailswidget.h>
|
#include <utils/detailswidget.h>
|
||||||
@@ -455,21 +456,32 @@ RunConfiguration *QbsRunConfigurationFactory::clone(Target *parent, RunConfigura
|
|||||||
|
|
||||||
QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(Target *parent, CreationMode mode) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(mode)
|
QList<qbs::ProductData> products;
|
||||||
QList<Core::Id> result;
|
|
||||||
if (!canHandle(parent))
|
if (!canHandle(parent))
|
||||||
return result;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
QbsProject *project = static_cast<QbsProject *>(parent->project());
|
QbsProject *project = static_cast<QbsProject *>(parent->project());
|
||||||
if (!project || !project->qbsProject().isValid())
|
if (!project || !project->qbsProject().isValid())
|
||||||
return result;
|
return QList<Core::Id>();
|
||||||
|
|
||||||
foreach (const qbs::ProductData &product, project->qbsProjectData().allProducts()) {
|
foreach (const qbs::ProductData &product, project->qbsProjectData().allProducts()) {
|
||||||
if (product.isRunnable() && product.isEnabled())
|
if (product.isRunnable() && product.isEnabled())
|
||||||
result << idFromProduct(project, product);
|
products << product;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
if (mode == AutoCreate) {
|
||||||
|
std::function<bool (const qbs::ProductData &)> hasQtcRunnable = [](const qbs::ProductData &product) {
|
||||||
|
return product.properties().value("qtcRunnable").toBool();
|
||||||
|
};
|
||||||
|
|
||||||
|
if (Utils::anyOf(products, hasQtcRunnable))
|
||||||
|
Utils::erase(products, std::not1(hasQtcRunnable));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Utils::transform(products, [project](const qbs::ProductData &product) {
|
||||||
|
return idFromProduct(project, product);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QbsRunConfigurationFactory::displayNameForId(Core::Id id) const
|
QString QbsRunConfigurationFactory::displayNameForId(Core::Id id) const
|
||||||
|
Reference in New Issue
Block a user