diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-01-29 14:04:56 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-02-16 09:33:47 +0000 |
commit | 24471740f276fc7fb3b662bd18ae637127368a9f (patch) | |
tree | 18a5b7657db9cd6b4edbf62da7230434b946fa61 /src/lib/corelib/buildgraph/rescuableartifactdata.h | |
parent | fc321f1cca3b9bbcbbf0200a16aff85a85a9a148 (diff) |
Move transformer change tracking out of the build graph loader
The checks that determine whether to re-run prepare scripts and/or
commands due to property or environment changes do not belong into the
build graph loader. Instead, we now do them on demand during the build
process. Advantages:
- The code is at its "natural" place, making it easier to understand
and less fragile.
- There are a lot fewer unnecessary build data invalidations, speeding
up both re-resolving and rebuilding in case only some rules/commands
have changed.
- Re-running commands due to property or environment changes no longer
implies re-running prepare scripts.
- We now catch property changes on generated artifacts, which was not
possible before, because the build graph loader only had access to
the source artifacts of the re-resolved project.
Change-Id: I36b022cf631fa9e8293feec4d6f416c2686539c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/buildgraph/rescuableartifactdata.h')
-rw-r--r-- | src/lib/corelib/buildgraph/rescuableartifactdata.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/corelib/buildgraph/rescuableartifactdata.h b/src/lib/corelib/buildgraph/rescuableartifactdata.h index 119bcc317..87e18c2f7 100644 --- a/src/lib/corelib/buildgraph/rescuableartifactdata.h +++ b/src/lib/corelib/buildgraph/rescuableartifactdata.h @@ -111,6 +111,8 @@ public: std::vector<QString> importedFilesUsedInCommands; RequestedDependencies depsRequestedInPrepareScript; RequestedDependencies depsRequestedInCommands; + FileTime lastPrepareScriptExecutionTime; + FileTime lastCommandExecutionTime; // Only needed for API purposes FileTags fileTags; |