aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-07-12 10:16:03 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-07-12 10:16:03 +0200
commitc45cd4a943dfbbc9c54f65ec2ab5250e9b5ba1cb (patch)
tree88031e0928c9b4b0bf01d72a89c90f3e1406c593 /src/lib/corelib/buildgraph
parentadcadd2a06b906685bf0a2687dd5ab902f3b0ebf (diff)
parent2440b19b288096e1601674de2ac15c560af469cd (diff)
Merge 1.12 into master
Diffstat (limited to 'src/lib/corelib/buildgraph')
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp4
-rw-r--r--src/lib/corelib/buildgraph/rulenode.cpp2
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index 13b21d40e..1012a1d4e 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -794,7 +794,9 @@ void Executor::rescueOldBuildData(Artifact *artifact, bool *childrenAdded = 0)
<< "not in the project's list of dependencies anymore.";
break;
}
- artifact->fileDependencies.insert(static_cast<FileDependency *>(*depIt));
+ FileDependency * const dep = static_cast<FileDependency *>(*depIt);
+ dep->clearTimestamp();
+ artifact->fileDependencies.insert(dep);
}
if (canRescue) {
diff --git a/src/lib/corelib/buildgraph/rulenode.cpp b/src/lib/corelib/buildgraph/rulenode.cpp
index 359054704..b3fc56031 100644
--- a/src/lib/corelib/buildgraph/rulenode.cpp
+++ b/src/lib/corelib/buildgraph/rulenode.cpp
@@ -217,6 +217,8 @@ ArtifactSet RuleNode::currentInputArtifacts() const
// This can e.g. happen for the ["cpp", "hpp"] -> ["hpp", "cpp", "unmocable"] rule.
continue;
}
+ if (artifact->fileTags().intersects(m_rule->excludedInputs))
+ continue;
s += artifact;
}
}
diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp
index d87d690a9..5962eb346 100644
--- a/src/lib/corelib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp
@@ -176,6 +176,8 @@ static QStringList toStringList(const ArtifactSet &artifacts)
void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &prepareScriptContext)
{
evalContext()->checkForCancelation();
+ for (const Artifact *inputArtifact : inputArtifacts)
+ QBS_CHECK(!inputArtifact->fileTags().intersects(m_rule->excludedInputs));
qCDebug(lcBuildGraph) << "apply rule" << m_rule->toString()
<< toStringList(inputArtifacts).join(QLatin1String(",\n "));