diff options
-rw-r--r-- | src/lib/corelib/buildgraph/rulenode.cpp | 9 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulesapplicator.cpp | 12 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 1 |
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)); } |