diff options
-rw-r--r-- | src/lib/corelib/api/internaljobs.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/api/internaljobs.h | 4 | ||||
-rw-r--r-- | src/lib/corelib/api/jobs.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/api/project.cpp | 8 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/buildgraph.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/buildgraphloader.cpp | 47 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/buildgraphloader.h | 12 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/executor.cpp | 24 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/executor.h | 6 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/productinstaller.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/productinstaller.h | 5 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/projectbuilddata.cpp | 6 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/projectbuilddata.h | 2 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/requestedartifacts.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/language.cpp | 6 | ||||
-rw-r--r-- | src/lib/corelib/language/language.h | 4 | ||||
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 12 | ||||
-rw-r--r-- | tests/auto/language/tst_language.cpp | 18 |
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) { |