From 885e66e13c7b6eedbda4754989f5fb894ba37e44 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 31 Jul 2014 11:47:02 +0200 Subject: add trace output for RuleNode::apply Change-Id: Icbb514d6ec2b13f2660cf86003aea0c6bbd8e132 Reviewed-by: Christian Kandeler --- src/lib/corelib/buildgraph/artifactset.cpp | 13 +++++++++++++ src/lib/corelib/buildgraph/artifactset.h | 3 +++ src/lib/corelib/buildgraph/rulenode.cpp | 11 +++++++++++ 3 files changed, 27 insertions(+) diff --git a/src/lib/corelib/buildgraph/artifactset.cpp b/src/lib/corelib/buildgraph/artifactset.cpp index 0010e81fe..eea4ccf65 100644 --- a/src/lib/corelib/buildgraph/artifactset.cpp +++ b/src/lib/corelib/buildgraph/artifactset.cpp @@ -53,6 +53,19 @@ ArtifactSet &ArtifactSet::unite(const ArtifactSet &other) return *this; } +QStringList ArtifactSet::toStringList() const +{ + QStringList sl; + foreach (Artifact *a, *this) + sl += a->filePath(); + return sl; +} + +QString ArtifactSet::toString() const +{ + return QLatin1Char('[') + toStringList().join(QLatin1String(", ")) + QLatin1Char(']'); +} + ArtifactSet ArtifactSet::fromNodeSet(const NodeSet &nodes) { ArtifactSet result; diff --git a/src/lib/corelib/buildgraph/artifactset.h b/src/lib/corelib/buildgraph/artifactset.h index 696859649..5361d706f 100644 --- a/src/lib/corelib/buildgraph/artifactset.h +++ b/src/lib/corelib/buildgraph/artifactset.h @@ -31,6 +31,7 @@ #define QBS_ARTIFACTSET_H #include +#include namespace qbs { namespace Internal { @@ -46,6 +47,8 @@ public: ArtifactSet(const QSet &other); ArtifactSet &unite(const ArtifactSet &other); + QStringList toStringList() const; + QString toString() const; static ArtifactSet fromNodeSet(const NodeSet &nodes); static ArtifactSet fromNodeList(const QList &lst); diff --git a/src/lib/corelib/buildgraph/rulenode.cpp b/src/lib/corelib/buildgraph/rulenode.cpp index 3ea324238..4bf027bfa 100644 --- a/src/lib/corelib/buildgraph/rulenode.cpp +++ b/src/lib/corelib/buildgraph/rulenode.cpp @@ -70,6 +70,17 @@ void RuleNode::apply(const Logger &logger, const ArtifactSet &changedInputs, const ArtifactSet removedInputs = m_oldInputArtifacts - allCompatibleInputs; result->upToDate = changedInputs.isEmpty() && addedInputs.isEmpty() && removedInputs.isEmpty(); + if (logger.traceEnabled()) { + logger.qbsTrace() + << "[BG] consider " << (m_rule->isDynamic() ? "dynamic " : "") + << (m_rule->multiplex ? "multiplex " : "") + << "rule node " << m_rule->toString() + << "\n\tchanged: " << changedInputs.toString() + << "\n\tcompatible: " << allCompatibleInputs.toString() + << "\n\tadded: " << addedInputs.toString() + << "\n\tremoved: " << removedInputs.toString(); + } + ArtifactSet inputs = changedInputs; if (product->isMarkedForReapplication(m_rule)) { QBS_CHECK(m_rule->multiplex); -- cgit v1.2.3