aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-07-16 18:50:45 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-07-18 10:57:50 +0200
commitdce309bf4e18cc20f3f9b03fbd33f63f5c60d025 (patch)
tree117edb10fc3dd42b4a4b6591c23897589669f9c9 /src/lib/corelib/buildgraph
parentbbdf9592d14dfb9cc771e0fed4881428830d916f (diff)
invalidate artifacts if a dependency is removed
Artifacts must be invalidated if a dependency is removed. Consider a foo.cpp that includes bar.h. If bar.h is removed from the project, then we must recompile foo.cpp to trigger the compile error that stems from the wrong include. Change-Id: Ifc2bc3085be553f87685a17c5ff05273daa6579c Task-number: QBS-631 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib/buildgraph')
-rw-r--r--src/lib/corelib/buildgraph/projectbuilddata.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/corelib/buildgraph/projectbuilddata.cpp b/src/lib/corelib/buildgraph/projectbuilddata.cpp
index 4f62bae3e..e2518636d 100644
--- a/src/lib/corelib/buildgraph/projectbuilddata.cpp
+++ b/src/lib/corelib/buildgraph/projectbuilddata.cpp
@@ -253,11 +253,12 @@ void ProjectBuildData::removeArtifactAndExclusiveDependents(Artifact *artifact,
if (removeParent) {
removeArtifactAndExclusiveDependents(parent, logger, removeFromProduct,
removedArtifacts);
+ } else {
+ parent->clearTimestamp();
}
}
const bool removeFromDisk = artifact->artifactType == Artifact::Generated;
removeArtifact(artifact, logger, removeFromDisk, removeFromProduct);
-
}
void ProjectBuildData::removeArtifact(Artifact *artifact,