diff options
Diffstat (limited to 'src/lib/buildgraph/cycledetector.h')
| -rw-r--r-- | src/lib/buildgraph/cycledetector.h | 15 |
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; |
