Files
CMake/Tests/RunCMake/InterfaceLibrary/unique_dependencies-stderr.txt
T
Simon Tatham 725ea968ac De-duplicate dependencies propagated through interface libraries
When processing an indirect dependency of target `A` on target `C` via
an interface library B, `cmComputeTargetDepends::AddTargetDepend` was
not checking for duplicate dependencies, so that if `A` depended on `C`
via multiple interface libraries, the dependency graph built in
cmComputeTargetDepends would have duplicate edges.  In a real project
(LLVM libc) this was causing cmake to consume multiple gigabytes of RAM.

Fixes: #27386
2025-11-26 14:48:45 +00:00

27 lines
675 B
Plaintext

The initial target dependency graph is:
target 0 is \[lib1\]
target 1 is \[lib2\]
target 2 is \[top\]
depends on target 3 \[util\] \(strong\)
target 3 is \[util\]
target 4 is \[edit_cache\]
target 5 is \[rebuild_cache\]
.*
The intermediate target dependency graph is:
target 0 is \[lib1\]
target 1 is \[lib2\]
target 2 is \[top\]
depends on target 3 \[util\] \(strong\)
target 3 is \[util\]
target 4 is \[edit_cache\]
target 5 is \[rebuild_cache\]
.*
The final target dependency graph is:
target 0 is \[lib1\]
target 1 is \[lib2\]
target 2 is \[top\]
depends on target 3 \[util\] \(strong\)
target 3 is \[util\]
target 4 is \[edit_cache\]
target 5 is \[rebuild_cache\]