Skip to content
Snippets Groups Projects
Commit bb331566 authored by Orgad Shaneh's avatar Orgad Shaneh Committed by Orgad Shaneh
Browse files

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: default avatarChristian Kandeler <christian.kandeler@theqtcompany.com>
parent 623d571b
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ QtcProduct { ...@@ -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 @@ ...@@ -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 ...@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment