aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-01-13 13:57:23 +0100
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-01-13 14:05:28 +0100
commitae3d764aaf894e0c5177ffa4427494486bc5ac68 (patch)
tree31291cba9443f60994c13fa2a5d02282d003db65
parent55b81b5be50a36048b99af2ba78b6e2faf0d6ef9 (diff)
parentd8a90f254e37cd40cc2a684e584a579689a4fb16 (diff)
Merge branch '1.3' into master.
Conflicts: tests/auto/blackbox/tst_blackbox.h Change-Id: If48c717626f468c46ad7f1208365275135074404
-rw-r--r--qbs.qbs2
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp1
-rw-r--r--src/lib/corelib/buildgraph/rulenode.cpp4
-rw-r--r--src/lib/corelib/buildgraph/rulenode.h1
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp5
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.h7
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp2
7 files changed, 16 insertions, 6 deletions
diff --git a/qbs.qbs b/qbs.qbs
index f684e9f2c..b9c7a0171 100644
--- a/qbs.qbs
+++ b/qbs.qbs
@@ -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.