aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/buildgraph/artifactcleaner.cpp11
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp2
2 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/buildgraph/artifactcleaner.cpp b/src/lib/buildgraph/artifactcleaner.cpp
index 7e9a449d4..7a2056a8c 100644
--- a/src/lib/buildgraph/artifactcleaner.cpp
+++ b/src/lib/buildgraph/artifactcleaner.cpp
@@ -32,6 +32,7 @@
#include "artifactvisitor.h"
#include "productbuilddata.h"
#include "projectbuilddata.h"
+#include "transformer.h"
#include <language/language.h>
#include <logging/translator.h>
@@ -39,6 +40,7 @@
#include <tools/error.h>
#include <tools/fileinfo.h>
#include <tools/progressobserver.h>
+#include <tools/qbsassert.h>
#include <QCoreApplication>
#include <QDir>
@@ -108,9 +110,12 @@ private:
{
if (artifact->product != m_product)
return;
- if (artifact->product->buildData->targetArtifacts.contains(artifact)
- && m_options.cleanType() == CleanOptions::CleanupTemporaries) {
- return;
+ if (m_options.cleanType() == CleanOptions::CleanupTemporaries) {
+ QBS_CHECK(artifact->transformer);
+ foreach (Artifact * const sibling, artifact->transformer->outputs) {
+ if (artifact->product->buildData->targetArtifacts.contains(sibling))
+ return;
+ }
}
try {
removeArtifactFromDisk(artifact, m_options.dryRun(), m_logger);
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 90b8a6c88..f3d9e4172 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -395,7 +395,7 @@ void TestBlackbox::clean()
QVERIFY(!QFile(depObjectFilePath).exists());
QVERIFY(QFile(depLibFilePath).exists());
foreach (const QString &symLink, symlinks)
- QVERIFY2(!QFile(symLink).exists(), qPrintable(symLink));
+ QVERIFY2(QFile(symLink).exists(), qPrintable(symLink));
// Remove all.
QCOMPARE(runQbs(), 0);