diff options
Diffstat (limited to 'src/lib/corelib/language')
-rw-r--r-- | src/lib/corelib/language/language.cpp | 8 | ||||
-rw-r--r-- | src/lib/corelib/language/language.h | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 13 |
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()); } } |