aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/language')
-rw-r--r--src/lib/corelib/language/language.cpp8
-rw-r--r--src/lib/corelib/language/language.h2
-rw-r--r--src/lib/corelib/language/projectresolver.cpp13
3 files changed, 8 insertions, 15 deletions
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp
index 56c310272..5351ba80c 100644
--- a/src/lib/corelib/language/language.cpp
+++ b/src/lib/corelib/language/language.cpp
@@ -979,11 +979,6 @@ bool operator==(const ExportedItem &i1, const ExportedItem &i2)
bool operator==(const ExportedModule &m1, const ExportedModule &m2)
{
- static const auto cmpProductsByName = [](
- const ResolvedProductConstPtr &p1,
- const ResolvedProductConstPtr &p2) {
- return p1->name == p2->name;
- };
static const auto depMapsEqual = [](const QMap<ResolvedProductConstPtr, QVariantMap> &m1,
const QMap<ResolvedProductConstPtr, QVariantMap> &m2) {
if (m1.size() != m2.size())
@@ -1003,8 +998,7 @@ bool operator==(const ExportedModule &m1, const ExportedModule &m2)
&& m1.m_properties == m2.m_properties
&& m1.importStatements == m2.importStatements
&& m1.productDependencies.size() == m2.productDependencies.size()
- && std::equal(m1.productDependencies.cbegin(), m1.productDependencies.cend(),
- m2.productDependencies.cbegin(), cmpProductsByName)
+ && m1.productDependencies == m2.productDependencies
&& depMapsEqual(m1.dependencyParameters, m2.dependencyParameters);
}
diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h
index 05fcfcf46..571681241 100644
--- a/src/lib/corelib/language/language.h
+++ b/src/lib/corelib/language/language.h
@@ -540,7 +540,7 @@ public:
QVariantMap propertyValues;
QVariantMap modulePropertyValues;
std::vector<ExportedItemPtr> children;
- std::vector<ResolvedProductPtr> productDependencies;
+ std::vector<QString> productDependencies;
std::vector<ExportedModuleDependency> moduleDependencies;
std::vector<ExportedProperty> m_properties;
QMap<ResolvedProductConstPtr, QVariantMap> dependencyParameters;
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index 348858f2b..97015dae4 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -911,19 +911,18 @@ void ProjectResolver::collectExportedProductDependencies()
if (!contains(directDepNames, dep.product->name))
continue;
- if (!contains(exportingProduct->exportedModule.productDependencies, dep.product))
- exportingProduct->exportedModule.productDependencies.push_back(dep.product);
+ if (!contains(exportingProduct->exportedModule.productDependencies,
+ dep.product->uniqueName())) {
+ exportingProduct->exportedModule.productDependencies.push_back(
+ dep.product->uniqueName());
+ }
if (!dep.parameters.isEmpty()) {
exportingProduct->exportedModule.dependencyParameters.insert(dep.product,
dep.parameters);
}
}
auto &productDeps = exportingProduct->exportedModule.productDependencies;
- static const auto cmpFunc = [](const ResolvedProductConstPtr &p1,
- const ResolvedProductConstPtr &p2) {
- return p1->uniqueName() < p2->uniqueName();
- };
- std::sort(productDeps.begin(), productDeps.end(), cmpFunc);
+ std::sort(productDeps.begin(), productDeps.end());
}
}