aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/corelib/buildgraph/rulenode.cpp9
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp12
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp1
3 files changed, 6 insertions, 16 deletions
diff --git a/src/lib/corelib/buildgraph/rulenode.cpp b/src/lib/corelib/buildgraph/rulenode.cpp
index eaccf3c6f..a5d79353d 100644
--- a/src/lib/corelib/buildgraph/rulenode.cpp
+++ b/src/lib/corelib/buildgraph/rulenode.cpp
@@ -88,10 +88,13 @@ void RuleNode::apply(const Logger &logger, const ArtifactSet &changedInputs,
product->unmarkForReapplication(m_rule);
if (logger.traceEnabled())
logger.qbsTrace() << "[BG] rule is marked for reapplication " << m_rule->toString();
- inputs += allCompatibleInputs;
- } else {
- inputs += addedInputs;
}
+
+ if (m_rule->multiplex)
+ inputs = allCompatibleInputs;
+ else
+ inputs += addedInputs;
+
if (result->upToDate)
return;
if (!removedInputs.isEmpty()) {
diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp
index 86599a136..7c97e2d99 100644
--- a/src/lib/corelib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp
@@ -315,18 +315,6 @@ Artifact *RulesApplicator::createOutputArtifact(const QString &filePath, const F
throw ErrorInfo(e);
}
- if (outputArtifact->transformer && outputArtifact->transformer != m_transformer) {
- QBS_CHECK(!m_transformer);
-
- // This can happen when applying rules after scanning for additional file tags.
- // We just regenerate the transformer.
- if (m_logger.traceEnabled()) {
- m_logger.qbsTrace() << QString::fromLocal8Bit("[BG] regenerating transformer "
- "for '%1'").arg(relativeArtifactFileName(outputArtifact));
- }
- m_transformer = outputArtifact->transformer;
- m_transformer->inputs.unite(inputArtifacts);
- }
outputArtifact->clearTimestamp();
} else {
outputArtifact = new Artifact;
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index f995ef3ec..1da1def94 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -1550,7 +1550,6 @@ void TestBlackbox::dynamicMultiplexRule()
waitForNewTimestamp();
touch("two.txt");
QCOMPARE(runQbs(), 0);
- QEXPECT_FAIL("", "QBS-645", Abort);
QVERIFY(regularFileExists(outputFilePath));
}