Merge topic 'cmcomputecomponentgraph-compute-method'

bd0d03386b cmComputeComponentGraph: Move work out of constructor into Compute() method

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5079
diff --git a/Source/cmComputeComponentGraph.cxx b/Source/cmComputeComponentGraph.cxx
index 81cd878..6591fb1 100644
--- a/Source/cmComputeComponentGraph.cxx
+++ b/Source/cmComputeComponentGraph.cxx
@@ -8,6 +8,12 @@
 cmComputeComponentGraph::cmComputeComponentGraph(Graph const& input)
   : InputGraph(input)
 {
+}
+
+cmComputeComponentGraph::~cmComputeComponentGraph() = default;
+
+void cmComputeComponentGraph::Compute()
+{
   // Identify components.
   this->Tarjan();
 
@@ -17,8 +23,6 @@
   this->TransferEdges();
 }
 
-cmComputeComponentGraph::~cmComputeComponentGraph() = default;
-
 void cmComputeComponentGraph::Tarjan()
 {
   int n = static_cast<int>(this->InputGraph.size());
diff --git a/Source/cmComputeComponentGraph.h b/Source/cmComputeComponentGraph.h
index 202888c..b873131 100644
--- a/Source/cmComputeComponentGraph.h
+++ b/Source/cmComputeComponentGraph.h
@@ -31,6 +31,9 @@
   cmComputeComponentGraph(Graph const& input);
   ~cmComputeComponentGraph();
 
+  /** Run the computation.  */
+  void Compute();
+
   /** Get the adjacency list of the component graph.  */
   Graph const& GetComponentGraph() const { return this->ComponentGraph; }
   EdgeList const& GetComponentGraphEdges(int c) const
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx
index 607b948..8ca2168 100644
--- a/Source/cmComputeLinkDepends.cxx
+++ b/Source/cmComputeLinkDepends.cxx
@@ -626,6 +626,7 @@
   // constraints disallow it.
   this->CCG =
     cm::make_unique<cmComputeComponentGraph>(this->EntryConstraintGraph);
+  this->CCG->Compute();
 
   // The component graph is guaranteed to be acyclic.  Start a DFS
   // from every entry to compute a topological order for the
diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx
index 06ad64d..e717f71 100644
--- a/Source/cmComputeTargetDepends.cxx
+++ b/Source/cmComputeTargetDepends.cxx
@@ -118,6 +118,7 @@
 
   // Identify components.
   cmComputeComponentGraph ccg(this->InitialGraph);
+  ccg.Compute();
   if (this->DebugMode) {
     this->DisplayComponents(ccg);
   }