1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include "cmListFileCache.h"
13 * Graph edge representation. Most use cases just need the
14 * destination vertex, so we support conversion to/from an int. We
15 * also store boolean to indicate whether an edge is "strong".
20 cmGraphEdge(int n, bool s, bool c, cmListFileBacktrace bt)
24 , Backtrace(std::move(bt))
27 operator int() const { return this->Dest; }
29 bool IsStrong() const { return this->Strong; }
31 bool IsCross() const { return this->Cross; }
33 cmListFileBacktrace const& GetBacktrace() const { return this->Backtrace; }
39 cmListFileBacktrace Backtrace;
41 struct cmGraphEdgeList : public std::vector<cmGraphEdge>
44 struct cmGraphNodeList : public std::vector<int>
47 struct cmGraphAdjacencyList : public std::vector<cmGraphEdgeList>