summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-10-22 16:28:23 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2013-10-22 16:36:36 +0200
commitafd141c892418419fa0084898c0cc5b03a69f96a (patch)
tree797b55bb54593dfcb05735d53939c52f0ba6ae6f /src/lib/buildgraph
parent1b2f39da7da66f9ea5a4dc163ae5835dd722eccf (diff)
downloadqbs-afd141c892418419fa0084898c0cc5b03a69f96a.tar.gz
Take dependencies into account when tracking changes.
They are currently ignored. Change-Id: I94b89f9b7c6838106670d553429b297823ac861f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/buildgraph')
-rw-r--r--src/lib/buildgraph/buildgraphloader.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/buildgraph/buildgraphloader.cpp b/src/lib/buildgraph/buildgraphloader.cpp
index 861738477..130784b31 100644
--- a/src/lib/buildgraph/buildgraphloader.cpp
+++ b/src/lib/buildgraph/buildgraphloader.cpp
@@ -394,11 +394,26 @@ void BuildGraphLoader::checkAllProductsForChanges(const QList<ResolvedProductPtr
}
}
+static bool dependenciesAreEqual(const ResolvedProductConstPtr &p1,
+ const ResolvedProductConstPtr &p2)
+{
+ if (p1->dependencies.count() != p2->dependencies.count())
+ return false;
+ QSet<QString> names1;
+ QSet<QString> names2;
+ foreach (const ResolvedProductConstPtr &dep, p1->dependencies)
+ names1 << dep->name;
+ foreach (const ResolvedProductConstPtr &dep, p2->dependencies)
+ names2 << dep->name;
+ return names1 == names2;
+}
+
bool BuildGraphLoader::checkProductForChanges(const ResolvedProductPtr &restoredProduct,
const ResolvedProductPtr &newlyResolvedProduct)
{
return !transformerListsAreEqual(restoredProduct->transformers,
newlyResolvedProduct->transformers)
+ || !dependenciesAreEqual(restoredProduct, newlyResolvedProduct)
|| checkForPropertyChanges(restoredProduct, newlyResolvedProduct);
// TODO: Check for more stuff.
}