summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/cycledetector.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/cycledetector.h')
-rw-r--r--src/lib/buildgraph/cycledetector.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/lib/buildgraph/cycledetector.h b/src/lib/buildgraph/cycledetector.h
index 61ddac0b1..654bba8f5 100644
--- a/src/lib/buildgraph/cycledetector.h
+++ b/src/lib/buildgraph/cycledetector.h
@@ -29,7 +29,8 @@
#ifndef QBS_CYCLEDETECTOR_H
#define QBS_CYCLEDETECTOR_H
-#include "artifactvisitor.h"
+#include "buildgraphvisitor.h"
+#include <language/forward_decls.h>
#include <logging/logger.h>
#include <QSet>
@@ -37,18 +38,20 @@
namespace qbs {
namespace Internal {
-class CycleDetector : public ArtifactVisitor
+class BuildGraphNode;
+
+class CycleDetector : private BuildGraphVisitor
{
public:
CycleDetector(const Logger &logger);
- void visitProject(const ResolvedProjectConstPtr &project);
- void visitArtifact(Artifact *artifact);
+ void visitProject(const TopLevelProjectConstPtr &project);
+ void visitProduct(const ResolvedProductConstPtr &product);
private:
- void doVisit(Artifact *artifact);
+ bool visit(Artifact *artifact);
- QList<Artifact *> cycle(Artifact *doubleEntry);
+ QList<BuildGraphNode *> cycle(BuildGraphNode *doubleEntry);
QSet<Artifact *> m_allArtifacts;
QSet<Artifact *> m_artifactsInCurrentPath;