diff options
-rw-r--r-- | src/lib/buildgraph/buildgraph.cpp | 3 | ||||
-rw-r--r-- | src/lib/buildgraph/rulesapplicator.cpp | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/buildgraph/buildgraph.cpp b/src/lib/buildgraph/buildgraph.cpp index f8c4f8b6a..cb3d6bda3 100644 --- a/src/lib/buildgraph/buildgraph.cpp +++ b/src/lib/buildgraph/buildgraph.cpp @@ -428,8 +428,11 @@ static void doSanityChecksForProduct(const ResolvedProductConstPtr &product, con logger.qbsTrace() << "Checking target artifact '" << ta->fileName() << "'."; QBS_CHECK(buildData->artifacts.contains(ta)); } + QSet<QString> filePaths; foreach (Artifact * const artifact, buildData->artifacts) { logger.qbsDebug() << "Sanity checking artifact '" << artifact->fileName() << "'"; + QBS_CHECK(!filePaths.contains(artifact->filePath())); + filePaths << artifact->filePath(); QBS_CHECK(artifact->product == product); foreach (const Artifact * const parent, artifact->parents) QBS_CHECK(parent->children.contains(artifact)); diff --git a/src/lib/buildgraph/rulesapplicator.cpp b/src/lib/buildgraph/rulesapplicator.cpp index 0e3e95374..788549ad4 100644 --- a/src/lib/buildgraph/rulesapplicator.cpp +++ b/src/lib/buildgraph/rulesapplicator.cpp @@ -268,6 +268,12 @@ Artifact *RulesApplicator::createOutputArtifact(const RuleArtifactConstPtr &rule .arg(outputArtifact->transformer->rule->script->location.line()) .arg(outputArtifact->transformer->rule->script->location.column()) .arg(th); + + QStringList inputFilePaths; + foreach (const Artifact * const a, m_transformer->inputs) + inputFilePaths << a->filePath(); + e.append(Tr::tr("The input artifacts are: %1") + .arg(inputFilePaths.join(QLatin1String(", ")))); throw ErrorInfo(e); } } |