Commit 9205bc7a authored by Christian Stenger's avatar Christian Stenger
Browse files

QbsPM: Implement configureAsExampleProject function



This function is used in some of the plugin unit tests of
QC.

Change-Id: I8e5f5b734a78a207f139b676aa6616abcc9ce7c0
Reviewed-by: Christian Kandeler's avatarChristian Kandeler <christian.kandeler@qt.io>
parent b1230182
......@@ -46,6 +46,7 @@
#include <cpptools/cppprojectupdater.h>
#include <extensionsystem/pluginmanager.h>
#include <projectexplorer/buildenvironmentwidget.h>
#include <projectexplorer/buildinfo.h>
#include <projectexplorer/buildmanager.h>
#include <projectexplorer/buildtargetinfo.h>
#include <projectexplorer/deploymentdata.h>
......@@ -689,6 +690,30 @@ QString QbsProject::uniqueProductName(const qbs::ProductData &product)
return product.name() + QLatin1Char('.') + product.profile();
}
void QbsProject::configureAsExampleProject(const QSet<Id> &platforms)
{
QList<const BuildInfo *> infoList;
QList<Kit *> kits = KitManager::kits();
const auto qtVersionMatchesPlatform = [platforms](const QtSupport::BaseQtVersion *version) {
return platforms.isEmpty() || platforms.intersects(version->targetDeviceTypes());
};
foreach (Kit *k, kits) {
const QtSupport::BaseQtVersion * const qtVersion
= QtSupport::QtKitInformation::qtVersion(k);
if (!qtVersion || !qtVersionMatchesPlatform(qtVersion))
continue;
const IBuildConfigurationFactory * const factory
= IBuildConfigurationFactory::find(k, projectFilePath().toString());
if (!factory)
continue;
for (BuildInfo * const info : factory->availableSetups(k, projectFilePath().toString()))
infoList << info;
}
setup(infoList);
qDeleteAll(infoList);
prepareForParsing();
}
void QbsProject::parse(const QVariantMap &config, const Environment &env, const QString &dir,
const QString &configName)
{
......
......@@ -108,6 +108,8 @@ public:
const qbs::ProductData &product);
static QString uniqueProductName(const qbs::ProductData &product);
void configureAsExampleProject(const QSet<Core::Id> &platforms) final;
public:
void invalidate();
void delayParsing();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment