diff options
Diffstat (limited to 'Source/cmComputeLinkDepends.h')
-rw-r--r-- | Source/cmComputeLinkDepends.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/Source/cmComputeLinkDepends.h b/Source/cmComputeLinkDepends.h index b41da9e..b738d8f 100644 --- a/Source/cmComputeLinkDepends.h +++ b/Source/cmComputeLinkDepends.h @@ -131,15 +131,33 @@ private: // Ordering algorithm. void OrderLinkEntires(); std::vector<char> ComponentVisited; + std::vector<int> ComponentOrder; + int ComponentOrderId; + struct PendingComponent + { + // The real component id. Needed because the map is indexed by + // component topological index. + int Id; + + // The number of times the component needs to be seen. This is + // always 1 for trivial components and is initially 2 for + // non-trivial components. + int Count; + + // The entries yet to be seen to complete the component. + DependSet Entries; + }; + std::map<int, PendingComponent> PendingComponents; + cmComputeComponentGraph* CCG; std::vector<int> FinalLinkOrder; - void DisplayComponents(cmComputeComponentGraph const& ccg); - void VisitComponent(cmComputeComponentGraph const& ccg, unsigned int i); - void EmitComponent(NodeList const& nl); + void DisplayComponents(); + void VisitComponent(unsigned int c); + void VisitEntry(int index); + PendingComponent& MakePendingComponent(unsigned int component); void DisplayFinalEntries(); - // Preservation of original link line. + // Record of the original link line. std::vector<int> OriginalEntries; - void PreserveOriginalEntries(); // Compatibility help. bool OldLinkDirMode; |