diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-06-22 15:40:01 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-07-05 09:02:52 +0000 |
commit | 768fc9c72e69f6a0843635bf71910c497d9f23ec (patch) | |
tree | 76f93222b2260b70c3bce7b0965a571f31a1aac5 /src/lib/corelib/buildgraph/artifact.cpp | |
parent | 3523be5d90a2502540a99ca2b57e28da41476b76 (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.cpp | 2 |
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); |