aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/executor.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-01-22 12:53:40 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-01-23 09:16:08 +0000
commitabff4b1b9b9b76e9b00b5a73108852e6f8e3e5d4 (patch)
treed18141f7ffd015fd45904700d19293d6c7b05050 /src/lib/corelib/buildgraph/executor.cpp
parent901bf1f7749e79a9fae2999d50131496dcaf4036 (diff)
Make ProductBuildData a proper class with accessors and modifiers
We will need to keep track of some mutating accesses in a follow-up change. Change-Id: I8b3c92f6cca0f5dceb35ef7559cc1357cdf38656 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/buildgraph/executor.cpp')
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index e23ef4dbb..a7854f99e 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -79,7 +79,7 @@ namespace Internal {
bool Executor::ComparePriority::operator() (const BuildGraphNode *x, const BuildGraphNode *y) const
{
- return x->product->buildData->buildPriority < y->product->buildData->buildPriority;
+ return x->product->buildData->buildPriority() < y->product->buildData->buildPriority();
}
@@ -200,7 +200,7 @@ private:
traverse(dependency);
if (!product->buildData)
return;
- product->buildData->buildPriority = m_priority--;
+ product->buildData->setBuildPriority(m_priority--);
}
};
@@ -473,7 +473,7 @@ void Executor::executeRuleNode(RuleNode *ruleNode)
if (ruleNode->rule()->acceptsAsInput(artifact))
changedInputArtifacts += artifact;
}
- for (Artifact *artifact : filterByType<Artifact>(ruleNode->product->buildData->nodes)) {
+ for (Artifact *artifact : filterByType<Artifact>(ruleNode->product->buildData->allNodes())) {
if (artifact->artifactType == Artifact::SourceFile)
continue;
if (ruleNode->rule()->acceptsAsInput(artifact)) {
@@ -513,7 +513,7 @@ void Executor::executeRuleNode(RuleNode *ruleNode)
continue;
Artifact * const outputArtifact = static_cast<Artifact *>(node);
if (outputArtifact->fileTags().intersects(product->fileTags))
- product->buildData->roots += outputArtifact;
+ product->buildData->addRootNode(outputArtifact);
for (Artifact *inputArtifact : qAsConst(outputArtifact->transformer->inputs))
Internal::connect(ruleNode, inputArtifact);
@@ -681,7 +681,7 @@ void Executor::setupProgressObserver()
int totalEffort = 1; // For the effort after the last rule application;
for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) {
QBS_CHECK(product->buildData);
- const auto filtered = filterByType<RuleNode>(product->buildData->nodes);
+ const auto filtered = filterByType<RuleNode>(product->buildData->allNodes());
totalEffort += std::distance(filtered.begin(), filtered.end());
}
m_progressObserver->initialize(tr("Building%1").arg(configString()), totalEffort);
@@ -738,7 +738,7 @@ void Executor::rescueOldBuildData(Artifact *artifact, bool *childrenAdded = 0)
ResolvedProduct * const product = artifact->product.get();
const RescuableArtifactData rad
- = product->buildData->rescuableArtifactData.take(artifact->filePath());
+ = product->buildData->removeFromRescuableArtifactData(artifact->filePath());
if (!rad.isValid())
return;
qCDebug(lcBuildGraph) << "Attempting to rescue data of artifact" << artifact->fileName();
@@ -762,7 +762,7 @@ void Executor::rescueOldBuildData(Artifact *artifact, bool *childrenAdded = 0)
qCDebug(lcBuildGraph) << "Former child artifact" << cd.childFilePath
<< "does not exist anymore.";
const RescuableArtifactData childRad
- = product->buildData->rescuableArtifactData.take(cd.childFilePath);
+ = product->buildData->removeFromRescuableArtifactData(cd.childFilePath);
if (childRad.isValid()) {
m_artifactsRemovedFromDisk << artifact->filePath();
removeGeneratedArtifactFromDisk(cd.childFilePath, m_logger);
@@ -999,7 +999,7 @@ void Executor::checkForUnbuiltProducts()
QList<ResolvedProductPtr> unbuiltProducts;
for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild)) {
bool productBuilt = true;
- for (BuildGraphNode *rootNode : qAsConst(product->buildData->roots)) {
+ for (BuildGraphNode *rootNode : qAsConst(product->buildData->rootNodes())) {
if (rootNode->buildState != BuildGraphNode::Built) {
productBuilt = false;
unbuiltProducts.push_back(product);
@@ -1009,12 +1009,12 @@ void Executor::checkForUnbuiltProducts()
if (productBuilt) {
// Any element still left after a successful build has not been re-created
// by any rule and therefore does not exist anymore as an artifact.
- for (auto it = product->buildData->rescuableArtifactData.cbegin();
- it != product->buildData->rescuableArtifactData.cend(); ++it) {
+ const AllRescuableArtifactData rad = product->buildData->rescuableArtifactData();
+ for (auto it = rad.cbegin(); it != rad.cend(); ++it) {
removeGeneratedArtifactFromDisk(it.key(), m_logger);
+ product->buildData->removeFromRescuableArtifactData(it.key());
m_artifactsRemovedFromDisk << it.key();
}
- product->buildData->rescuableArtifactData.clear();
}
}
@@ -1114,13 +1114,13 @@ void Executor::prepareAllNodes()
for (const ResolvedProductPtr &product : m_project->allProducts()) {
if (product->enabled) {
QBS_CHECK(product->buildData);
- for (BuildGraphNode * const node : qAsConst(product->buildData->nodes))
+ for (BuildGraphNode * const node : qAsConst(product->buildData->allNodes()))
node->buildState = BuildGraphNode::Untouched;
}
}
for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild)) {
QBS_CHECK(product->buildData);
- for (Artifact * const artifact : filterByType<Artifact>(product->buildData->nodes))
+ for (Artifact * const artifact : filterByType<Artifact>(product->buildData->allNodes()))
prepareArtifact(artifact);
}
}
@@ -1201,7 +1201,7 @@ void Executor::setupRootNodes()
{
m_roots.clear();
for (const ResolvedProductPtr &product : qAsConst(m_productsToBuild))
- m_roots += product->buildData->roots;
+ m_roots += product->buildData->rootNodes();
}
void Executor::setState(ExecutorState s)