aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/corelib/api/internaljobs.cpp4
-rw-r--r--src/lib/corelib/api/internaljobs.h4
-rw-r--r--src/lib/corelib/api/jobs.cpp4
-rw-r--r--src/lib/corelib/api/project.cpp8
-rw-r--r--src/lib/corelib/buildgraph/buildgraph.cpp4
-rw-r--r--src/lib/corelib/buildgraph/buildgraphloader.cpp47
-rw-r--r--src/lib/corelib/buildgraph/buildgraphloader.h12
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp24
-rw-r--r--src/lib/corelib/buildgraph/executor.h6
-rw-r--r--src/lib/corelib/buildgraph/productinstaller.cpp2
-rw-r--r--src/lib/corelib/buildgraph/productinstaller.h5
-rw-r--r--src/lib/corelib/buildgraph/projectbuilddata.cpp6
-rw-r--r--src/lib/corelib/buildgraph/projectbuilddata.h2
-rw-r--r--src/lib/corelib/buildgraph/requestedartifacts.cpp2
-rw-r--r--src/lib/corelib/language/language.cpp6
-rw-r--r--src/lib/corelib/language/language.h4
-rw-r--r--src/lib/corelib/language/projectresolver.cpp12
-rw-r--r--tests/auto/language/tst_language.cpp18
18 files changed, 87 insertions, 83 deletions
diff --git a/src/lib/corelib/api/internaljobs.cpp b/src/lib/corelib/api/internaljobs.cpp
index 8c0718c32..5122db8ee 100644
--- a/src/lib/corelib/api/internaljobs.cpp
+++ b/src/lib/corelib/api/internaljobs.cpp
@@ -374,7 +374,7 @@ void InternalBuildJob::build(const TopLevelProjectPtr &project,
m_executor = new Executor(logger());
m_executor->setProject(project);
- m_executor->setProducts(products);
+ m_executor->setProducts(std::vector<ResolvedProductPtr>(products.cbegin(), products.cend()));
m_executor->setBuildOptions(buildOptions);
m_executor->setProgressObserver(observer());
@@ -441,7 +441,7 @@ InternalInstallJob::~InternalInstallJob()
}
void InternalInstallJob::init(const TopLevelProjectPtr &project,
- const QList<ResolvedProductPtr> &products, const InstallOptions &options)
+ const std::vector<ResolvedProductPtr> &products, const InstallOptions &options)
{
m_project = project;
m_products = products;
diff --git a/src/lib/corelib/api/internaljobs.h b/src/lib/corelib/api/internaljobs.h
index 4ed6bf1f4..71e6615bf 100644
--- a/src/lib/corelib/api/internaljobs.h
+++ b/src/lib/corelib/api/internaljobs.h
@@ -213,14 +213,14 @@ public:
InternalInstallJob(const Logger &logger);
~InternalInstallJob();
- void init(const TopLevelProjectPtr &project, const QList<ResolvedProductPtr> &products,
+ void init(const TopLevelProjectPtr &project, const std::vector<ResolvedProductPtr> &products,
const InstallOptions &options);
private:
void start() override;
TopLevelProjectPtr m_project;
- QList<ResolvedProductPtr> m_products;
+ std::vector<ResolvedProductPtr> m_products;
InstallOptions m_options;
};
diff --git a/src/lib/corelib/api/jobs.cpp b/src/lib/corelib/api/jobs.cpp
index 82c10e1a6..28b8a40fa 100644
--- a/src/lib/corelib/api/jobs.cpp
+++ b/src/lib/corelib/api/jobs.cpp
@@ -373,7 +373,9 @@ void InstallJob::install(const TopLevelProjectPtr &project,
return;
InternalJobThreadWrapper *wrapper = qobject_cast<InternalJobThreadWrapper *>(internalJob());
InternalInstallJob *installJob = qobject_cast<InternalInstallJob *>(wrapper->synchronousJob());
- installJob->init(project, products, options);
+ installJob->init(project,
+ std::vector<ResolvedProductPtr>(products.cbegin(), products.cend()),
+ options);
wrapper->start();
}
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp
index ae7bf0134..69c7edf77 100644
--- a/src/lib/corelib/api/project.cpp
+++ b/src/lib/corelib/api/project.cpp
@@ -191,7 +191,7 @@ static QList<ResolvedProductPtr> enabledInternalProducts(const ResolvedProjectCo
bool includingNonDefault)
{
QList<ResolvedProductPtr> products;
- for (const ResolvedProductPtr &p : qAsConst(project->products)) {
+ for (const ResolvedProductPtr &p : project->products) {
if (p->enabled && (includingNonDefault || p->builtByDefault()))
products.push_back(p);
}
@@ -214,7 +214,7 @@ static bool matches(const ProductData &product, const ResolvedProductConstPtr &r
static ResolvedProductPtr internalProductForProject(const ResolvedProjectConstPtr &project,
const ProductData &product)
{
- for (const ResolvedProductPtr &resolvedProduct : qAsConst(project->products)) {
+ for (const ResolvedProductPtr &resolvedProduct : project->products) {
if (matches(product, resolvedProduct))
return resolvedProduct;
}
@@ -672,7 +672,7 @@ void ProjectPrivate::updateInternalCodeLocations(const ResolvedProjectPtr &proje
updateLocationIfNecessary(project->location, changeLocation, lineOffset);
for (const ResolvedProjectPtr &subProject : qAsConst(project->subProjects))
updateInternalCodeLocations(subProject, changeLocation, lineOffset);
- for (const ResolvedProductPtr &product : qAsConst(project->products)) {
+ for (const ResolvedProductPtr &product : project->products) {
updateLocationIfNecessary(product->location, changeLocation, lineOffset);
for (const GroupPtr &group : product->groups)
updateLocationIfNecessary(group->location, changeLocation, lineOffset);
@@ -837,7 +837,7 @@ void ProjectPrivate::retrieveProjectData(ProjectData &projectData,
projectData.d->name = internalProject->name;
projectData.d->location = internalProject->location;
projectData.d->enabled = internalProject->enabled;
- for (const ResolvedProductConstPtr &resolvedProduct : qAsConst(internalProject->products)) {
+ for (const ResolvedProductConstPtr &resolvedProduct : internalProject->products) {
ProductData product;
product.d->type = resolvedProduct->fileTags.toStringList();
product.d->name = resolvedProduct->name;
diff --git a/src/lib/corelib/buildgraph/buildgraph.cpp b/src/lib/corelib/buildgraph/buildgraph.cpp
index 95b30e5eb..3862e9da4 100644
--- a/src/lib/corelib/buildgraph/buildgraph.cpp
+++ b/src/lib/corelib/buildgraph/buildgraph.cpp
@@ -725,7 +725,7 @@ static void doSanityChecks(const ResolvedProjectPtr &project,
for (const ResolvedProjectPtr &subProject : qAsConst(project->subProjects))
doSanityChecks(subProject, allProducts, productNames, logger);
- for (const ResolvedProductConstPtr &product : qAsConst(project->products)) {
+ for (const ResolvedProductConstPtr &product : project->products) {
QBS_CHECK(product->project == project);
QBS_CHECK(product->topLevelProject() == project->topLevelProject());
doSanityChecksForProduct(product, allProducts, logger);
@@ -740,7 +740,7 @@ void doSanityChecks(const ResolvedProjectPtr &project, const Logger &logger)
return;
Set<QString> productNames;
const Set<ResolvedProductPtr> allProducts
- = Set<ResolvedProductPtr>::fromList(project->allProducts());
+ = Set<ResolvedProductPtr>::fromStdVector(project->allProducts());
doSanityChecks(project, allProducts, productNames, logger);
}
diff --git a/src/lib/corelib/buildgraph/buildgraphloader.cpp b/src/lib/corelib/buildgraph/buildgraphloader.cpp
index 836b21bc6..cc71cd0d6 100644
--- a/src/lib/corelib/buildgraph/buildgraphloader.cpp
+++ b/src/lib/corelib/buildgraph/buildgraphloader.cpp
@@ -88,7 +88,7 @@ BuildGraphLoader::~BuildGraphLoader()
static void restoreBackPointers(const ResolvedProjectPtr &project)
{
- for (const ResolvedProductPtr &product : qAsConst(project->products)) {
+ for (const ResolvedProductPtr &product : project->products) {
product->project = project;
if (!product->buildData)
continue;
@@ -234,12 +234,12 @@ bool BuildGraphLoader::checkBuildGraphCompatibility(const TopLevelProjectConstPt
throw ErrorInfo(message);
}
-static bool checkProductForChangedDependency(QList<ResolvedProductPtr> &changedProducts,
+static bool checkProductForChangedDependency(std::vector<ResolvedProductPtr> &changedProducts,
Set<ResolvedProductPtr> &seenProducts, const ResolvedProductPtr &product)
{
if (seenProducts.contains(product))
return false;
- if (changedProducts.contains(product))
+ if (contains(changedProducts, product))
return true;
for (const ResolvedProductPtr &dep : qAsConst(product->dependencies)) {
if (checkProductForChangedDependency(changedProducts, seenProducts, dep)) {
@@ -255,8 +255,8 @@ static bool checkProductForChangedDependency(QList<ResolvedProductPtr> &changedP
// artifacts of the rules taking the artifacts from the dependency as inputs will be
// rebuilt due to their rule getting re-applied (as the rescued input artifacts will show
// up as newly added) and no rescue data being available.
-static void makeChangedProductsListComplete(QList<ResolvedProductPtr> &changedProducts,
- const QList<ResolvedProductPtr> &allRestoredProducts)
+static void makeChangedProductsListComplete(std::vector<ResolvedProductPtr> &changedProducts,
+ const std::vector<ResolvedProductPtr> &allRestoredProducts)
{
Set<ResolvedProductPtr> seenProducts;
for (const ResolvedProductPtr &p : allRestoredProducts)
@@ -302,8 +302,8 @@ void BuildGraphLoader::trackProjectChanges()
m_parameters.logElapsedTime());
const TopLevelProjectPtr &restoredProject = m_result.loadedProject;
Set<QString> buildSystemFiles = restoredProject->buildSystemFiles;
- QList<ResolvedProductPtr> allRestoredProducts = restoredProject->allProducts();
- QList<ResolvedProductPtr> changedProducts;
+ std::vector<ResolvedProductPtr> allRestoredProducts = restoredProject->allProducts();
+ std::vector<ResolvedProductPtr> changedProducts;
bool reResolvingNecessary = false;
if (!checkConfigCompatibility())
reResolvingNecessary = true;
@@ -349,7 +349,7 @@ void BuildGraphLoader::trackProjectChanges()
ldr.setStoredProfiles(restoredProject->profileConfigs);
m_result.newlyResolvedProject = ldr.loadProject(m_parameters);
- QList<ResolvedProductPtr> allNewlyResolvedProducts
+ std::vector<ResolvedProductPtr> allNewlyResolvedProducts
= m_result.newlyResolvedProject->allProducts();
for (const ResolvedProductPtr &cp : qAsConst(allNewlyResolvedProducts))
m_freshProductsByName.insert(cp->uniqueName(), cp);
@@ -388,7 +388,7 @@ void BuildGraphLoader::trackProjectChanges()
rescuableArtifactData.insert(product->uniqueName(),
product->buildData->rescuableArtifactData());
}
- allRestoredProducts.removeOne(product);
+ removeOne(allRestoredProducts, product);
}
// Move over restored build data to newly resolved project.
@@ -407,9 +407,9 @@ void BuildGraphLoader::trackProjectChanges()
// Keep in list if build data still needs to be resolved.
if (!newlyResolvedProduct->enabled || newlyResolvedProduct->buildData)
- allNewlyResolvedProducts.removeAt(i);
+ allNewlyResolvedProducts.erase(allNewlyResolvedProducts.begin() + i);
- allRestoredProducts.removeAt(j);
+ allRestoredProducts.erase(allRestoredProducts.begin() + j);
break;
}
}
@@ -417,7 +417,7 @@ void BuildGraphLoader::trackProjectChanges()
// Products still left in the list do not exist anymore.
for (const ResolvedProductPtr &removedProduct : qAsConst(allRestoredProducts)) {
- changedProducts.removeOne(removedProduct);
+ removeOne(changedProducts, removedProduct);
onProductRemoved(removedProduct, m_result.newlyResolvedProject->buildData.get());
}
@@ -447,7 +447,7 @@ void BuildGraphLoader::trackProjectChanges()
bool BuildGraphLoader::probeExecutionForced(
const TopLevelProjectConstPtr &restoredProject,
- const QList<ResolvedProductPtr> &restoredProducts) const
+ const std::vector<ResolvedProductPtr> &restoredProducts) const
{
if (!m_parameters.forceProbeExecution())
return false;
@@ -544,9 +544,9 @@ bool BuildGraphLoader::hasFileLastModifiedResultChanged(const TopLevelProjectCon
return false;
}
-bool BuildGraphLoader::hasProductFileChanged(const QList<ResolvedProductPtr> &restoredProducts,
+bool BuildGraphLoader::hasProductFileChanged(const std::vector<ResolvedProductPtr> &restoredProducts,
const FileTime &referenceTime, Set<QString> &remainingBuildSystemFiles,
- QList<ResolvedProductPtr> &changedProducts)
+ std::vector<ResolvedProductPtr> &changedProducts)
{
bool hasChanged = false;
for (const ResolvedProductPtr &product : restoredProducts) {
@@ -559,7 +559,7 @@ bool BuildGraphLoader::hasProductFileChanged(const QList<ResolvedProductPtr> &re
} else if (referenceTime < pfi.lastModified()) {
qCDebug(lcBuildGraph) << "A product was changed, must re-resolve project";
hasChanged = true;
- } else if (!changedProducts.contains(product)) {
+ } else if (!contains(changedProducts, product)) {
bool foundMissingSourceFile = false;
for (const QString &file : qAsConst(product->missingSourceFiles)) {
if (FileInfo(file).exists()) {
@@ -620,7 +620,7 @@ bool BuildGraphLoader::hasBuildSystemFileChanged(const Set<QString> &buildSystem
}
void BuildGraphLoader::markTransformersForChangeTracking(
- const QList<ResolvedProductPtr> &restoredProducts)
+ const std::vector<ResolvedProductPtr> &restoredProducts)
{
for (const ResolvedProductPtr &product : restoredProducts) {
if (!product->buildData)
@@ -634,8 +634,9 @@ void BuildGraphLoader::markTransformersForChangeTracking(
}
}
-void BuildGraphLoader::checkAllProductsForChanges(const QList<ResolvedProductPtr> &restoredProducts,
- QList<ResolvedProductPtr> &changedProducts)
+void BuildGraphLoader::checkAllProductsForChanges(
+ const std::vector<ResolvedProductPtr> &restoredProducts,
+ std::vector<ResolvedProductPtr> &changedProducts)
{
for (const ResolvedProductPtr &restoredProduct : restoredProducts) {
const ResolvedProductPtr newlyResolvedProduct
@@ -645,7 +646,7 @@ void BuildGraphLoader::checkAllProductsForChanges(const QList<ResolvedProductPtr
if (newlyResolvedProduct->enabled != restoredProduct->enabled) {
qCDebug(lcBuildGraph) << "Condition of product" << restoredProduct->uniqueName()
<< "was changed, must set up build data from scratch";
- if (!changedProducts.contains(restoredProduct))
+ if (!contains(changedProducts, restoredProduct))
changedProducts << restoredProduct;
continue;
}
@@ -653,7 +654,7 @@ void BuildGraphLoader::checkAllProductsForChanges(const QList<ResolvedProductPtr
if (checkProductForChanges(restoredProduct, newlyResolvedProduct)) {
qCDebug(lcBuildGraph) << "Product" << restoredProduct->uniqueName()
<< "was changed, must set up build data from scratch";
- if (!changedProducts.contains(restoredProduct))
+ if (!contains(changedProducts, restoredProduct))
changedProducts << restoredProduct;
continue;
}
@@ -662,7 +663,7 @@ void BuildGraphLoader::checkAllProductsForChanges(const QList<ResolvedProductPtr
newlyResolvedProduct->allEnabledFiles())) {
qCDebug(lcBuildGraph) << "File list of product" << restoredProduct->uniqueName()
<< "was changed.";
- if (!changedProducts.contains(restoredProduct))
+ if (!contains(changedProducts, restoredProduct))
changedProducts << restoredProduct;
}
}
@@ -747,7 +748,7 @@ void BuildGraphLoader::onProductRemoved(const ResolvedProductPtr &product,
{
qCDebug(lcBuildGraph) << "product" << product->uniqueName() << "removed.";
- product->project->products.removeOne(product);
+ removeOne(product->project->products, product);
if (product->buildData) {
for (BuildGraphNode * const node : qAsConst(product->buildData->allNodes())) {
if (node->type() == BuildGraphNode::ArtifactNodeType) {
diff --git a/src/lib/corelib/buildgraph/buildgraphloader.h b/src/lib/corelib/buildgraph/buildgraphloader.h
index cc29a49cf..e83a4a088 100644
--- a/src/lib/corelib/buildgraph/buildgraphloader.h
+++ b/src/lib/corelib/buildgraph/buildgraphloader.h
@@ -84,21 +84,21 @@ private:
bool checkBuildGraphCompatibility(const TopLevelProjectConstPtr &project);
void trackProjectChanges();
bool probeExecutionForced(const TopLevelProjectConstPtr &restoredProject,
- const QList<ResolvedProductPtr> &restoredProducts) const;
+ const std::vector<ResolvedProductPtr> &restoredProducts) const;
bool hasEnvironmentChanged(const TopLevelProjectConstPtr &restoredProject) const;
bool hasCanonicalFilePathResultChanged(const TopLevelProjectConstPtr &restoredProject) const;
bool hasFileExistsResultChanged(const TopLevelProjectConstPtr &restoredProject) const;
bool hasDirectoryEntriesResultChanged(const TopLevelProjectConstPtr &restoredProject) const;
bool hasFileLastModifiedResultChanged(const TopLevelProjectConstPtr &restoredProject) const;
- bool hasProductFileChanged(const QList<ResolvedProductPtr> &restoredProducts,
+ bool hasProductFileChanged(const std::vector<ResolvedProductPtr> &restoredProducts,
const FileTime &referenceTime,
Set<QString> &remainingBuildSystemFiles,
- QList<ResolvedProductPtr> &productsWithChangedFiles);
+ std::vector<ResolvedProductPtr> &productsWithChangedFiles);
bool hasBuildSystemFileChanged(const Set<QString> &buildSystemFiles,
const FileTime &referenceTime);
- void markTransformersForChangeTracking(const QList<ResolvedProductPtr> &restoredProducts);
- void checkAllProductsForChanges(const QList<ResolvedProductPtr> &restoredProducts,
- QList<ResolvedProductPtr> &changedProducts);
+ void markTransformersForChangeTracking(const std::vector<ResolvedProductPtr> &restoredProducts);
+ void checkAllProductsForChanges(const std::vector<ResolvedProductPtr> &restoredProducts,
+ std::vector<ResolvedProductPtr> &changedProducts);
bool checkProductForChanges(const ResolvedProductPtr &restoredProduct,
const ResolvedProductPtr &newlyResolvedProduct);
bool checkProductForInstallInfoChanges(const ResolvedProductPtr &restoredProduct,
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index d6f0337d8..1783decab 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -167,7 +167,7 @@ void Executor::setProject(const TopLevelProjectPtr &project)
m_projectsByName.insert(std::make_pair(p->name, p.get()));
}
-void Executor::setProducts(const QList<ResolvedProductPtr> &productsToBuild)
+void Executor::setProducts(const std::vector<ResolvedProductPtr> &productsToBuild)
{
m_productsToBuild = productsToBuild;
m_productsByName.clear();
@@ -177,11 +177,11 @@ void Executor::setProducts(const QList<ResolvedProductPtr> &productsToBuild)
class ProductPrioritySetter
{
- const QList<ResolvedProductPtr> &m_allProducts;
+ const std::vector<ResolvedProductPtr> &m_allProducts;
unsigned int m_priority;
Set<ResolvedProductPtr> m_seenProducts;
public:
- ProductPrioritySetter(const QList<ResolvedProductPtr> &allProducts) // TODO: Use only products to build?
+ ProductPrioritySetter(const std::vector<ResolvedProductPtr> &allProducts) // TODO: Use only products to build?
: m_allProducts(allProducts)
{
}
@@ -194,7 +194,7 @@ public:
allDependencies += dep;
}
const Set<ResolvedProductPtr> rootProducts
- = Set<ResolvedProductPtr>::fromList(m_allProducts) - allDependencies;
+ = Set<ResolvedProductPtr>::fromStdVector(m_allProducts) - allDependencies;
m_priority = UINT_MAX;
m_seenProducts.clear();
for (const ResolvedProductPtr &rootProduct : rootProducts)
@@ -244,7 +244,7 @@ void Executor::doBuild()
if (file->fileType() != FileResourceBase::FileTypeArtifact)
continue;
const Artifact * const artifact = static_cast<const Artifact *>(file);
- if (m_productsToBuild.contains(artifact->product.lock())) {
+ if (contains(m_productsToBuild, artifact->product.lock())) {
m_tagsOfFilesToConsider.unite(artifact->fileTags());
m_productsOfFilesToConsider << artifact->product.lock();
}
@@ -699,7 +699,7 @@ void Executor::setupProgressObserver()
if (!m_progressObserver)
return;
int totalEffort = 1; // For the effort after the last rule application;
- for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) {
+ for (const ResolvedProductConstPtr &product : m_productsToBuild) {
QBS_CHECK(product->buildData);
const auto filtered = filterByType<RuleNode>(product->buildData->allNodes());
totalEffort += std::distance(filtered.begin(), filtered.end());
@@ -711,7 +711,7 @@ void Executor::doSanityChecks()
{
QBS_CHECK(m_project);
QBS_CHECK(!m_productsToBuild.empty());
- for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) {
+ for (const ResolvedProductConstPtr &product : m_productsToBuild) {
QBS_CHECK(product->buildData);
QBS_CHECK(product->topLevelProject() == m_project.get());
}
@@ -1030,7 +1030,7 @@ void Executor::checkForUnbuiltProducts()
if (m_buildOptions.executeRulesOnly())
return;
QList<ResolvedProductPtr> unbuiltProducts;
- for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild)) {
+ for (const ResolvedProductPtr &product : m_productsToBuild) {
bool productBuilt = true;
for (BuildGraphNode *rootNode : qAsConst(product->buildData->rootNodes())) {
if (rootNode->buildState != BuildGraphNode::Built) {
@@ -1066,7 +1066,7 @@ void Executor::checkForUnbuiltProducts()
bool Executor::checkNodeProduct(BuildGraphNode *node)
{
- if (!m_partialBuild || m_productsToBuild.contains(node->product.lock()))
+ if (!m_partialBuild || contains(m_productsToBuild, node->product.lock()))
return true;
// TODO: Turn this into a warning once we have a reliable C++ scanner.
@@ -1151,7 +1151,7 @@ void Executor::prepareAllNodes()
node->buildState = BuildGraphNode::Untouched;
}
}
- for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild)) {
+ for (const ResolvedProductPtr &product : m_productsToBuild) {
QBS_CHECK(product->buildData);
for (Artifact * const artifact : filterByType<Artifact>(product->buildData->allNodes()))
prepareArtifact(artifact);
@@ -1262,7 +1262,7 @@ void Executor::prepareProducts()
{
ProductPrioritySetter prioritySetter(m_allProducts);
prioritySetter.apply();
- for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild)) {
+ for (const ResolvedProductPtr &product : m_productsToBuild) {
EnvironmentScriptRunner(product.get(), m_evalContext.get(), m_project->environment)
.setupForBuild();
}
@@ -1271,7 +1271,7 @@ void Executor::prepareProducts()
void Executor::setupRootNodes()
{
m_roots.clear();
- for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild))
+ for (const ResolvedProductPtr &product : m_productsToBuild)
m_roots += product->buildData->rootNodes();
}
diff --git a/src/lib/corelib/buildgraph/executor.h b/src/lib/corelib/buildgraph/executor.h
index 4127e3563..a73e5f812 100644
--- a/src/lib/corelib/buildgraph/executor.h
+++ b/src/lib/corelib/buildgraph/executor.h
@@ -81,7 +81,7 @@ public:
~Executor();
void setProject(const TopLevelProjectPtr &project);
- void setProducts(const QList<ResolvedProductPtr> &productsToBuild);
+ void setProducts(const std::vector<ResolvedProductPtr> &productsToBuild);
void setBuildOptions(const BuildOptions &buildOptions);
void setProgressObserver(ProgressObserver *observer) { m_progressObserver = observer; }
@@ -165,8 +165,8 @@ private:
QList<ExecutorJob*> m_availableJobs;
ExecutorState m_state;
TopLevelProjectPtr m_project;
- QList<ResolvedProductPtr> m_productsToBuild;
- QList<ResolvedProductPtr> m_allProducts;
+ std::vector<ResolvedProductPtr> m_productsToBuild;
+ std::vector<ResolvedProductPtr> m_allProducts;
std::unordered_map<QString, const ResolvedProduct *> m_productsByName;
std::unordered_map<QString, const ResolvedProject *> m_projectsByName;
NodeSet m_roots;
diff --git a/src/lib/corelib/buildgraph/productinstaller.cpp b/src/lib/corelib/buildgraph/productinstaller.cpp
index b83f40817..8e5af3266 100644
--- a/src/lib/corelib/buildgraph/productinstaller.cpp
+++ b/src/lib/corelib/buildgraph/productinstaller.cpp
@@ -60,7 +60,7 @@ namespace qbs {
namespace Internal {
ProductInstaller::ProductInstaller(const TopLevelProjectPtr &project,
- const QList<ResolvedProductPtr> &products, const InstallOptions &options,
+ const std::vector<ResolvedProductPtr> &products, const InstallOptions &options,
ProgressObserver *observer, const Logger &logger)
: m_project(project),
m_products(products),
diff --git a/src/lib/corelib/buildgraph/productinstaller.h b/src/lib/corelib/buildgraph/productinstaller.h
index b7bf9e3fe..8379adb4c 100644
--- a/src/lib/corelib/buildgraph/productinstaller.h
+++ b/src/lib/corelib/buildgraph/productinstaller.h
@@ -55,7 +55,8 @@ class ProgressObserver;
class ProductInstaller
{
public:
- ProductInstaller(const TopLevelProjectPtr &project, const QList<ResolvedProductPtr> &products,
+ ProductInstaller(const TopLevelProjectPtr &project,
+ const std::vector<ResolvedProductPtr> &products,
const InstallOptions &options, ProgressObserver *observer, const Logger &logger);
void install();
@@ -71,7 +72,7 @@ private:
void handleError(const QString &message);
const TopLevelProjectConstPtr m_project;
- const QList<ResolvedProductPtr> m_products;
+ const std::vector<ResolvedProductPtr> m_products;
InstallOptions m_options;
ProgressObserver * const m_observer;
Logger m_logger;
diff --git a/src/lib/corelib/buildgraph/projectbuilddata.cpp b/src/lib/corelib/buildgraph/projectbuilddata.cpp
index f816b248f..5e4d19654 100644
--- a/src/lib/corelib/buildgraph/projectbuilddata.cpp
+++ b/src/lib/corelib/buildgraph/projectbuilddata.cpp
@@ -290,7 +290,7 @@ void BuildDataResolver::resolveBuildData(const TopLevelProjectPtr &resolvedProje
m_project = resolvedProject;
resolvedProject->buildData.reset(new ProjectBuildData);
resolvedProject->buildData->evaluationContext = evalContext;
- const QList<ResolvedProductPtr> allProducts = resolvedProject->allProducts();
+ const std::vector<ResolvedProductPtr> &allProducts = resolvedProject->allProducts();
evalContext->initializeObserver(Tr::tr("Setting up build graph for configuration %1")
.arg(resolvedProject->id()), allProducts.size() + 1);
for (ResolvedProductPtr rProduct : allProducts) {
@@ -303,7 +303,7 @@ void BuildDataResolver::resolveBuildData(const TopLevelProjectPtr &resolvedProje
}
void BuildDataResolver::resolveProductBuildDataForExistingProject(const TopLevelProjectPtr &project,
- const QList<ResolvedProductPtr> &freshProducts)
+ const std::vector<ResolvedProductPtr> &freshProducts)
{
m_project = project;
for (const ResolvedProductPtr &product : freshProducts) {
@@ -325,7 +325,7 @@ void BuildDataResolver::resolveProductBuildDataForExistingProject(const TopLevel
}
}
for (auto it = dependencyMap.cbegin(); it != dependencyMap.cend(); ++it) {
- if (!freshProducts.contains(it.key()))
+ if (!contains(freshProducts, it.key()))
connectRulesToDependencies(it.key(), it.value());
}
}
diff --git a/src/lib/corelib/buildgraph/projectbuilddata.h b/src/lib/corelib/buildgraph/projectbuilddata.h
index be9506517..e63922bae 100644
--- a/src/lib/corelib/buildgraph/projectbuilddata.h
+++ b/src/lib/corelib/buildgraph/projectbuilddata.h
@@ -114,7 +114,7 @@ public:
void resolveBuildData(const TopLevelProjectPtr &resolvedProject,
const RulesEvaluationContextPtr &evalContext);
void resolveProductBuildDataForExistingProject(const TopLevelProjectPtr &project,
- const QList<ResolvedProductPtr> &freshProducts);
+ const std::vector<ResolvedProductPtr> &freshProducts);
private:
void resolveProductBuildData(const ResolvedProductPtr &product);
diff --git a/src/lib/corelib/buildgraph/requestedartifacts.cpp b/src/lib/corelib/buildgraph/requestedartifacts.cpp
index ee0fa7905..0028c21bb 100644
--- a/src/lib/corelib/buildgraph/requestedartifacts.cpp
+++ b/src/lib/corelib/buildgraph/requestedartifacts.cpp
@@ -54,7 +54,7 @@ bool RequestedArtifacts::isUpToDate(const TopLevelProject *project) const
{
if (m_requestedArtifactsPerProduct.empty())
return true;
- const QList<ResolvedProductPtr> &allProducts = project->allProducts();
+ const std::vector<ResolvedProductPtr> &allProducts = project->allProducts();
for (auto it = m_requestedArtifactsPerProduct.cbegin();
it != m_requestedArtifactsPerProduct.cend(); ++it) {
const QString &productName = it->first;
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp
index 435970132..3649b5cb4 100644
--- a/src/lib/corelib/language/language.cpp
+++ b/src/lib/corelib/language/language.cpp
@@ -565,7 +565,7 @@ ResolvedProject::~ResolvedProject()
void ResolvedProject::accept(BuildGraphVisitor *visitor) const
{
- for (const ResolvedProductPtr &product : qAsConst(products))
+ for (const ResolvedProductPtr &product : products)
product->accept(visitor);
for (const ResolvedProjectPtr &subProject : qAsConst(subProjects))
subProject->accept(visitor);
@@ -591,9 +591,9 @@ QList<ResolvedProjectPtr> ResolvedProject::allSubProjects() const
return projectList;
}
-QList<ResolvedProductPtr> ResolvedProject::allProducts() const
+std::vector<ResolvedProductPtr> ResolvedProject::allProducts() const
{
- QList<ResolvedProductPtr> productList = products;
+ std::vector<ResolvedProductPtr> productList = products;
for (const ResolvedProjectConstPtr &subProject : qAsConst(subProjects))
productList << subProject->allProducts();
return productList;
diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h
index d4c69ae68..a1d95fe5d 100644
--- a/src/lib/corelib/language/language.h
+++ b/src/lib/corelib/language/language.h
@@ -650,7 +650,7 @@ public:
QString name;
CodeLocation location;
bool enabled;
- QList<ResolvedProductPtr> products;
+ std::vector<ResolvedProductPtr> products;
QList<ResolvedProjectPtr> subProjects;
WeakPointer<ResolvedProject> parentProject;
@@ -661,7 +661,7 @@ public:
TopLevelProject *topLevelProject();
QList<ResolvedProjectPtr> allSubProjects() const;
- QList<ResolvedProductPtr> allProducts() const;
+ std::vector<ResolvedProductPtr> allProducts() const;
virtual void load(PersistentPool &pool);
virtual void store(PersistentPool &pool);
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index 592a2a41c..174c9d5bd 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -134,11 +134,11 @@ void ProjectResolver::setProgressObserver(ProgressObserver *observer)
static void checkForDuplicateProductNames(const TopLevelProjectConstPtr &project)
{
- const QList<ResolvedProductPtr> allProducts = project->allProducts();
- for (int i = 0; i < allProducts.size(); ++i) {
+ const std::vector<ResolvedProductPtr> allProducts = project->allProducts();
+ for (size_t i = 0; i < allProducts.size(); ++i) {
const ResolvedProductConstPtr product1 = allProducts.at(i);
const QString productName = product1->uniqueName();
- for (int j = i + 1; j < allProducts.size(); ++j) {
+ for (size_t j = i + 1; j < allProducts.size(); ++j) {
const ResolvedProductConstPtr product2 = allProducts.at(j);
if (product2->uniqueName() == productName) {
ErrorInfo error;
@@ -345,7 +345,7 @@ void ProjectResolver::resolveProjectFully(Item *item, ProjectResolver::ProjectCo
}
}
- for (const ResolvedProductPtr &product : qAsConst(projectContext->project->products))
+ for (const ResolvedProductPtr &product : projectContext->project->products)
postProcess(product, projectContext);
}
@@ -1518,7 +1518,7 @@ void gatherDependencies(ResolvedProduct *product, DependencyMap &dependencies)
-static DependencyMap allDependencies(const QList<ResolvedProductPtr> &products)
+static DependencyMap allDependencies(const std::vector<ResolvedProductPtr> &products)
{
DependencyMap dependencies;
for (const ResolvedProductPtr &product : products)
@@ -1529,7 +1529,7 @@ static DependencyMap allDependencies(const QList<ResolvedProductPtr> &products)
void ProjectResolver::resolveProductDependencies(const ProjectContext &projectContext)
{
// Resolve all inter-product dependencies.
- const QList<ResolvedProductPtr> allProducts = projectContext.project->allProducts();
+ const std::vector<ResolvedProductPtr> allProducts = projectContext.project->allProducts();
bool disabledDependency = false;
for (const ResolvedProductPtr &rproduct : allProducts) {
if (!rproduct->enabled)
diff --git a/tests/auto/language/tst_language.cpp b/tests/auto/language/tst_language.cpp
index 1545bc07c..24a3ae8cb 100644
--- a/tests/auto/language/tst_language.cpp
+++ b/tests/auto/language/tst_language.cpp
@@ -308,7 +308,7 @@ void TestLanguage::chainedProbes()
parameters.setProjectFilePath(testProject("chained-probes/chained-probes.qbs"));
const TopLevelProjectConstPtr project = loader->loadProject(parameters);
QVERIFY(!!project);
- QCOMPARE(project->products.size(), 1);
+ QCOMPARE(project->products.size(), size_t(1));
const QString prop2Val = project->products.front()->moduleProperties
->moduleProperty("m", "prop2").toString();
QCOMPARE(prop2Val, QLatin1String("probe1Valprobe2Val"));
@@ -491,7 +491,7 @@ void TestLanguage::delayedError()
project = loader->loadProject(params);
QCOMPARE(productEnabled, false);
QVERIFY(!!project);
- QCOMPARE(project->products.size(), 1);
+ QCOMPARE(project->products.size(), size_t(1));
const ResolvedProductConstPtr theProduct = productsFromProject(project).value("theProduct");
QVERIFY(!!theProduct);
QCOMPARE(theProduct->enabled, false);
@@ -532,7 +532,7 @@ void TestLanguage::dependencyOnAllProfiles()
params.setOverriddenValues(overriddenValues);
project = loader->loadProject(params);
QVERIFY(!!project);
- QCOMPARE(project->products.size(), 3);
+ QCOMPARE(project->products.size(), size_t(3));
const ResolvedProductConstPtr mainProduct = productsFromProject(project).value("main");
QVERIFY(!!mainProduct);
QCOMPARE(mainProduct->dependencies.size(), size_t { 2 });
@@ -1907,7 +1907,7 @@ void TestLanguage::multiplexedExports()
const TopLevelProjectPtr project = loader->loadProject(params);
QVERIFY(!!project);
const auto products = project->allProducts();
- QCOMPARE(products.size(), 4);
+ QCOMPARE(products.size(), size_t(4));
std::set<ResolvedProductPtr> pVariants;
for (const auto &product : products) {
if (product->name != "p")
@@ -2091,8 +2091,8 @@ void TestLanguage::overriddenPropertiesAndPrototypes()
params.setOverriddenValues({std::make_pair("modules.qbs.targetPlatform", osName)});
TopLevelProjectConstPtr project = loader->loadProject(params);
QVERIFY(!!project);
- QCOMPARE(project->products.size(), 1);
- QCOMPARE(project->products.first()->moduleProperties->moduleProperty(
+ QCOMPARE(project->products.size(), size_t(1));
+ QCOMPARE(project->products.front()->moduleProperties->moduleProperty(
"multiple_backends", "prop").toString(), backendName);
}
catch (const ErrorInfo &e) {
@@ -2436,7 +2436,7 @@ void TestLanguage::propertiesBlockInGroup()
defaultParameters.setProjectFilePath(testProject("properties-block-in-group.qbs"));
const TopLevelProjectPtr project = loader->loadProject(defaultParameters);
QVERIFY(!!project);
- QCOMPARE(project->allProducts().size(), 1);
+ QCOMPARE(project->allProducts().size(), size_t(1));
const ResolvedProductConstPtr product = project->allProducts().front();
const auto groupIt = std::find_if(product->groups.cbegin(), product->groups.cend(),
[](const GroupConstPtr &g) { return g->name == "the group"; });
@@ -2546,8 +2546,8 @@ void TestLanguage::qbsPropertyConvenienceOverride()
params.setOverriddenValues({std::make_pair("qbs.installPrefix", "/opt")});
TopLevelProjectConstPtr project = loader->loadProject(params);
QVERIFY(!!project);
- QCOMPARE(project->products.count(), 1);
- QCOMPARE(project->products.first()->moduleProperties->qbsPropertyValue("installPrefix")
+ QCOMPARE(project->products.size(), size_t(1));
+ QCOMPARE(project->products.front()->moduleProperties->qbsPropertyValue("installPrefix")
.toString(), QString("/opt"));
}
catch (const ErrorInfo &e) {