diff options
| author | Christian Kandeler <christian.kandeler@digia.com> | 2013-08-22 16:10:26 +0200 |
|---|---|---|
| committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-08-23 16:39:47 +0200 |
| commit | 6798f6a8709fe82a1c67b656d4321e75936549a2 (patch) | |
| tree | 5dcfb673c0a4850afd4ce002504bcc2bc96f4aa9 /src/lib/buildgraph/buildgraphloader.h | |
| parent | fd2a5d4ba2c452d312094cfc215ee9234b0db5bf (diff) | |
| download | qbs-6798f6a8709fe82a1c67b656d4321e75936549a2.tar.gz | |
Fix change tracking for properties requested from prepare scripts.
When evaluating prepare scripts, we currently gather values requested
from products as well as artifacts, but we do not differentiate between
the two cases and upon restoring, we always compare the old property
values to the product properties. This results in an insane amount of
recompiling if any build system file changes due to false positives.
With this patch, we record whether a property was requested from a
product or an artifact, and use the right set of properties when
tracking changes.
Change-Id: Ib1fa4fad41019cfa7d3a10e0a91e7709c2f56414
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/buildgraph/buildgraphloader.h')
| -rw-r--r-- | src/lib/buildgraph/buildgraphloader.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/buildgraph/buildgraphloader.h b/src/lib/buildgraph/buildgraphloader.h index 5057120d1..c2a413f60 100644 --- a/src/lib/buildgraph/buildgraphloader.h +++ b/src/lib/buildgraph/buildgraphloader.h @@ -44,6 +44,7 @@ namespace Internal { class ArtifactList; class FileDependency; class FileTime; +class Property; class BuildGraphLoadResult { @@ -88,7 +89,10 @@ private: const ResolvedProductPtr &changedProduct); void removeArtifactAndExclusiveDependents(Artifact *artifact, ArtifactList *removedArtifacts = 0); - bool checkForPropertyChanges(const TransformerPtr &restoredTrafo, const ResolvedProductPtr &freshProduct); + bool checkForPropertyChanges(const TransformerConstPtr &restoredTrafo, + const ResolvedProductPtr &freshProduct); + bool checkForPropertyChange(const Property &restoredProperty, + const PropertyMapConstPtr &newProperties); void replaceFileDependencyWithArtifact(const ResolvedProductPtr &fileDepProduct, FileDependency *filedep, Artifact *artifact); void rescueOldBuildData(const ResolvedProductConstPtr &restoredProduct, |
