aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/artifact.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-06-22 15:40:01 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-07-05 09:02:52 +0000
commit768fc9c72e69f6a0843635bf71910c497d9f23ec (patch)
tree76f93222b2260b70c3bce7b0965a571f31a1aac5 /src/lib/corelib/buildgraph/artifact.cpp
parent3523be5d90a2502540a99ca2b57e28da41476b76 (diff)
Do not reset the product build data due to source file metadata changes
It is not necessary to throw away and recreate all the product's artifacts and rule nodes if a source file's tags or properties change. Instead, just copy the new data into the corresponding Artifact object. As a necessary side effect, we also handle changes to the product- level module properties and to "fileTagsFilter groups" in a more fine- grained manner by resetting the properties and file tags of the product's Artifact objects that represent generated artifacts. This is part of a long-term effort to eliminate the build graph's "shadow structure" aka RescuableArtifactData. The next step will deal with added and removed source files. Change-Id: I054fa18d7920ea5c429c92bfca1c12e34192211e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/buildgraph/artifact.cpp')
-rw-r--r--src/lib/corelib/buildgraph/artifact.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/corelib/buildgraph/artifact.cpp b/src/lib/corelib/buildgraph/artifact.cpp
index 5e38c3b36..4dcb22185 100644
--- a/src/lib/corelib/buildgraph/artifact.cpp
+++ b/src/lib/corelib/buildgraph/artifact.cpp
@@ -142,6 +142,7 @@ void Artifact::load(PersistentPool &pool)
pool.load(targetOfModule);
pool.load(transformer);
pool.load(m_fileTags);
+ pool.load(pureFileTags);
artifactType = static_cast<ArtifactType>(pool.load<quint8>());
alwaysUpdated = pool.load<bool>();
oldDataPossiblyPresent = pool.load<bool>();
@@ -159,6 +160,7 @@ void Artifact::store(PersistentPool &pool)
pool.store(targetOfModule);
pool.store(transformer);
pool.store(m_fileTags);
+ pool.store(pureFileTags);
pool.store(static_cast<quint8>(artifactType));
pool.store(alwaysUpdated);
pool.store(oldDataPossiblyPresent);