aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/executor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/buildgraph/executor.cpp')
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index 1c50f7234..c5f652db5 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -860,24 +860,27 @@ void Executor::potentiallyRunTransformer(const TransformerPtr &transformer)
return;
}
- if (!mustExecuteTransformer(transformer)) {
+ const bool mustExecute = mustExecuteTransformer(transformer);
+ if (mustExecute || m_buildOptions.forceTimestampCheck()) {
+ for (Artifact * const output : qAsConst(transformer->outputs)) {
+ // Scan all input artifacts. If new dependencies were found during scanning, delay
+ // execution of this transformer.
+ InputArtifactScanner scanner(output, m_inputArtifactScanContext, m_logger);
+ AccumulatingTimer scanTimer(m_buildOptions.logElapsedTime()
+ ? &m_elapsedTimeScanners : nullptr);
+ scanner.scan();
+ scanTimer.stop();
+ if (scanner.newDependencyAdded() && checkForUnbuiltDependencies(output))
+ return;
+ }
+ }
+
+ if (!mustExecute) {
qCDebug(lcExec) << "Up to date. Skipping.";
finishTransformer(transformer);
return;
}
- for (Artifact * const output : qAsConst(transformer->outputs)) {
- // Scan all input artifacts. If new dependencies were found during scanning, delay
- // execution of this transformer.
- InputArtifactScanner scanner(output, m_inputArtifactScanContext, m_logger);
- AccumulatingTimer scanTimer(m_buildOptions.logElapsedTime()
- ? &m_elapsedTimeScanners : nullptr);
- scanner.scan();
- scanTimer.stop();
- if (scanner.newDependencyAdded() && checkForUnbuiltDependencies(output))
- return;
- }
-
if (m_buildOptions.executeRulesOnly())
finishTransformer(transformer);
else