MCPcopy Create free account
hub / github.com/Kitware/CMake / ComputeIntermediateGraph

Method ComputeIntermediateGraph

Source/cmComputeTargetDepends.cxx:445–471  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

443}
444
445void cmComputeTargetDepends::ComputeIntermediateGraph()
446{
447 this->IntermediateGraph.resize(0);
448 this->IntermediateGraph.resize(this->InitialGraph.size());
449
450 size_t n = this->InitialGraph.size();
451 for (size_t i = 0; i < n; ++i) {
452 auto const& initialEdges = this->InitialGraph[i];
453 auto& intermediateEdges = this->IntermediateGraph[i];
454 cmGeneratorTarget const* gt = this->Targets[i];
455 if (gt->GetType() != cmStateEnums::STATIC_LIBRARY &&
456 gt->GetType() != cmStateEnums::OBJECT_LIBRARY) {
457 intermediateEdges = initialEdges;
458 } else {
459 if (cmValue optimizeDependencies =
460 gt->GetProperty("OPTIMIZE_DEPENDENCIES")) {
461 if (optimizeDependencies.IsOn()) {
462 this->OptimizeLinkDependencies(gt, intermediateEdges, initialEdges);
463 } else {
464 intermediateEdges = initialEdges;
465 }
466 } else {
467 intermediateEdges = initialEdges;
468 }
469 }
470 }
471}
472
473void cmComputeTargetDepends::OptimizeLinkDependencies(
474 cmGeneratorTarget const* gt, cmGraphEdgeList& outputEdges,

Callers 1

ComputeMethod · 0.95

Calls 6

resizeMethod · 0.45
sizeMethod · 0.45
GetTypeMethod · 0.45
GetPropertyMethod · 0.45
IsOnMethod · 0.45

Tested by

no test coverage detected