aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/rescuableartifactdata.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-01-29 14:04:56 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-02-16 09:33:47 +0000
commit24471740f276fc7fb3b662bd18ae637127368a9f (patch)
tree18a5b7657db9cd6b4edbf62da7230434b946fa61 /src/lib/corelib/buildgraph/rescuableartifactdata.h
parentfc321f1cca3b9bbcbbf0200a16aff85a85a9a148 (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.h2
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;