diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-01-13 13:57:23 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-01-13 14:05:28 +0100 |
commit | ae3d764aaf894e0c5177ffa4427494486bc5ac68 (patch) | |
tree | 31291cba9443f60994c13fa2a5d02282d003db65 | |
parent | 55b81b5be50a36048b99af2ba78b6e2faf0d6ef9 (diff) | |
parent | d8a90f254e37cd40cc2a684e584a579689a4fb16 (diff) |
Merge branch '1.3' into master.
Conflicts:
tests/auto/blackbox/tst_blackbox.h
Change-Id: If48c717626f468c46ad7f1208365275135074404
-rw-r--r-- | qbs.qbs | 2 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/executor.cpp | 1 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulenode.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulenode.h | 1 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulesapplicator.cpp | 5 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulesapplicator.h | 7 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 2 |
7 files changed, 16 insertions, 6 deletions
@@ -14,7 +14,7 @@ Project { property string relativePluginsPath: "../" + libDirName property string relativeSearchPath: ".." property stringList libRPaths: { - if (!project.enableRPath) + if (!enableRPath) return undefined; if (qbs.targetOS.contains("linux")) return ["$ORIGIN/../" + libDirName]; diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index a8f84a5d5..a16c45931 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -488,6 +488,7 @@ void Executor::executeRuleNode(RuleNode *ruleNode) loggedConnect(parentRule, outputArtifact, m_logger); } updateLeaves(result.createdNodes); + updateLeaves(result.invalidatedNodes); } finishNode(ruleNode); if (m_progressObserver) diff --git a/src/lib/corelib/buildgraph/rulenode.cpp b/src/lib/corelib/buildgraph/rulenode.cpp index 002dbbbe7..d2884c9e3 100644 --- a/src/lib/corelib/buildgraph/rulenode.cpp +++ b/src/lib/corelib/buildgraph/rulenode.cpp @@ -124,7 +124,9 @@ void RuleNode::apply(const Logger &logger, const ArtifactSet &changedInputs, } if (!inputs.isEmpty()) { RulesApplicator applicator(product, logger); - result->createdNodes = applicator.applyRuleInEvaluationContext(m_rule, inputs); + applicator.applyRuleInEvaluationContext(m_rule, inputs); + result->createdNodes = applicator.createdArtifacts(); + result->invalidatedNodes = applicator.invalidatedArtifacts(); m_oldInputArtifacts.unite(inputs); } } diff --git a/src/lib/corelib/buildgraph/rulenode.h b/src/lib/corelib/buildgraph/rulenode.h index b5ccabe00..415b90f75 100644 --- a/src/lib/corelib/buildgraph/rulenode.h +++ b/src/lib/corelib/buildgraph/rulenode.h @@ -58,6 +58,7 @@ public: { bool upToDate; NodeSet createdNodes; + NodeSet invalidatedNodes; }; void apply(const Logger &logger, const ArtifactSet &changedInputs, ApplicationResult *result); diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index 198daddee..604ade703 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -66,13 +66,13 @@ RulesApplicator::~RulesApplicator() delete m_mocScanner; } -NodeSet RulesApplicator::applyRuleInEvaluationContext(const RuleConstPtr &rule, +void RulesApplicator::applyRuleInEvaluationContext(const RuleConstPtr &rule, const ArtifactSet &inputArtifacts) { m_createdArtifacts.clear(); + m_invalidatedArtifacts.clear(); RulesEvaluationContext::Scope s(m_product->topLevelProject()->buildData->evaluationContext.data()); applyRule(rule, inputArtifacts); - return m_createdArtifacts; } void RulesApplicator::applyRule(const RuleConstPtr &rule, const ArtifactSet &inputArtifacts) @@ -320,6 +320,7 @@ Artifact *RulesApplicator::createOutputArtifact(const QString &filePath, const F throw ErrorInfo(e); } outputArtifact->clearTimestamp(); + m_invalidatedArtifacts += outputArtifact; } else { outputArtifact = new Artifact; outputArtifact->artifactType = Artifact::Generated; diff --git a/src/lib/corelib/buildgraph/rulesapplicator.h b/src/lib/corelib/buildgraph/rulesapplicator.h index 76d63ac96..ec5261b2b 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.h +++ b/src/lib/corelib/buildgraph/rulesapplicator.h @@ -52,8 +52,12 @@ class RulesApplicator public: RulesApplicator(const ResolvedProductPtr &product, const Logger &logger); ~RulesApplicator(); - NodeSet applyRuleInEvaluationContext(const RuleConstPtr &rule, + + void applyRuleInEvaluationContext(const RuleConstPtr &rule, const ArtifactSet &inputArtifacts); + const NodeSet &createdArtifacts() const { return m_createdArtifacts; } + const NodeSet &invalidatedArtifacts() const { return m_invalidatedArtifacts; } + void applyRule(const RuleConstPtr &rule, const ArtifactSet &inputArtifacts); static void handleRemovedRuleOutputs(const ArtifactSet &inputArtifacts, ArtifactSet artifactsToRemove, const Logger &logger); @@ -76,6 +80,7 @@ private: const ResolvedProductPtr m_product; NodeSet m_createdArtifacts; + NodeSet m_invalidatedArtifacts; RuleConstPtr m_rule; ArtifactSet m_completeInputSet; TransformerPtr m_transformer; diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index a84f0e6d1..4f0d4880e 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -2039,7 +2039,6 @@ void TestBlackbox::wildCardsAndRules() // Add input. touch("input2.inp"); - QEXPECT_FAIL(0, "QBS-723", Abort); QbsRunParameters params; params.expectFailure = true; QCOMPARE(runQbs(params), 0); @@ -2051,6 +2050,7 @@ void TestBlackbox::wildCardsAndRules() // Add "explicitlyDependsOn". touch("dep.dep"); QCOMPARE(runQbs(), 0); + QEXPECT_FAIL(0, "QBS-724", Abort); QVERIFY(m_qbsStdout.contains("Creating output artifact")); // Add nothing. |