summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeComponentGraph.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-08-25 14:07:25 (GMT)
committerBrad King <brad.king@kitware.com>2010-08-25 21:10:00 (GMT)
commit681cf011dde81c08c0404569289110f9585c6daf (patch)
tree63c7bab28a00c110e4946d13aeb168c5d1fa66bf /Source/cmComputeComponentGraph.cxx
parent7be2617b5a52529ce0ca33e6c878a0294e1e2781 (diff)
downloadCMake-681cf011dde81c08c0404569289110f9585c6daf.zip
CMake-681cf011dde81c08c0404569289110f9585c6daf.tar.gz
CMake-681cf011dde81c08c0404569289110f9585c6daf.tar.bz2
Distinguish "strong" and "weak" target dependency edges
Utility dependencies are "strong" because they must be enforced to generate a working build. Link dependencies are "weak" because they can be broken in the case of a static library cycle.
Diffstat (limited to 'Source/cmComputeComponentGraph.cxx')
-rw-r--r--Source/cmComputeComponentGraph.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/cmComputeComponentGraph.cxx b/Source/cmComputeComponentGraph.cxx
index 165af10..5bec6a1 100644
--- a/Source/cmComputeComponentGraph.cxx
+++ b/Source/cmComputeComponentGraph.cxx
@@ -149,7 +149,10 @@ void cmComputeComponentGraph::TransferEdges()
int j_component = this->TarjanComponents[j];
if(i_component != j_component)
{
- this->ComponentGraph[i_component].push_back(j_component);
+ // We do not attempt to combine duplicate edges, but instead
+ // store the inter-component edges with suitable multiplicity.
+ this->ComponentGraph[i_component].push_back(
+ cmGraphEdge(j_component, ni->IsStrong()));
}
}
}