"SOURCES use a generator expression that depends on SOURCES themselves" with static libraries and a dependency cycle
In a project with several STATIC
libraries which have a dependency cycle, I am encountering an error in the generation phase:
-- Configuring done
CMake Error at esp-idf/tools/cmake/component.cmake:480 (add_library):
The SOURCES of "__idf_xtensa" use a generator expression that depends on
the SOURCES themselves.
Call Stack (most recent call first):
esp-idf/components/xtensa/CMakeLists.txt:14 (idf_component_register)
__idf_xtensa
is the name of a static library target. I was confused by the error message for a while, since the sources list of this library does not seem to use generator expressions.
To debug the error, I have put a breakpoint at https://gitlab.kitware.com/cmake/cmake/-/blob/master/Source/cmGeneratorTarget.cxx#L2000 where this error is printed. I got a fairly long backtrace (below). (The length of the backtrace probably reflects the length of the dependency cycle in my project.)
It seems that cmGeneratorTarget::GetKindedSources gets called twice in the call stack, for the same library target, and as far as I understand this leads to the above error being reported.
* frame #0: 0x000000010351a0fc cmake`cmGeneratorTarget::GetKindedSources(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:1999:26
...
frame #191: 0x000000010351a2f0 cmake`cmGeneratorTarget::GetKindedSources(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:2013:9
(full backtrace)
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
* frame #0: 0x000000010351a0fc cmake`cmGeneratorTarget::GetKindedSources(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:1999:26
frame #1: 0x0000000103522460 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:1951:39
frame #2: 0x00000001035221e8 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000014e856c00, files=size=0, config="") const at cmGeneratorTarget.cxx:1922:46
frame #3: 0x000000010354d5a8 cmake`cmGeneratorTarget::GetLanguages(this=0x000000014e856c00, languages=size=0, config="") const at cmGeneratorTarget.cxx:7923:9
frame #4: 0x000000010354c918 cmake`cmGeneratorTarget::ComputeLinkImplementationLanguages(this=0x000000014e856c00, config="", impl=0x000060000103a4e8) const at cmGeneratorTarget.cxx:7997:9
frame #5: 0x00000001035294fc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x000000014e856c00, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7752:11
frame #6: 0x0000000103547890 cmake`cmGeneratorTarget::ComputeLinkInterface(this=0x000000014e856c00, config="", iface=0x000000014d728628, headTarget=0x000000015186f600, secondPass=false) const at cmGeneratorTarget.cxx:6882:50
frame #7: 0x00000001035462e0 cmake`cmGeneratorTarget::GetLinkInterface(this=0x000000014e856c00, config="", head=0x000000015186f600, secondPass=false) const at cmGeneratorTarget.cxx:6852:13
frame #8: 0x00000001035296c8 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f04ca30) at cmGeneratorTarget.cxx:2739:49
frame #9: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06dbf8) at cmGeneratorTarget.cxx:2753:13
frame #10: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06cbc0) at cmGeneratorTarget.cxx:2753:13
frame #11: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06c388) at cmGeneratorTarget.cxx:2753:13
frame #12: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06bb50) at cmGeneratorTarget.cxx:2753:13
frame #13: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06b318) at cmGeneratorTarget.cxx:2753:13
frame #14: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06aae0) at cmGeneratorTarget.cxx:2753:13
frame #15: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f06a2a8) at cmGeneratorTarget.cxx:2753:13
frame #16: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014d83ca70) at cmGeneratorTarget.cxx:2753:13
frame #17: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014e858838) at cmGeneratorTarget.cxx:2753:13
frame #18: 0x00000001035297c0 cmake`cmTargetCollectLinkLanguages::Visit(this=0x000000016ce203b8, item=0x000000014f073600) at cmGeneratorTarget.cxx:2753:13
frame #19: 0x00000001035290f4 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151896e00, config="", lc=0x000000016ce206c0, secondPass=false) const at cmGeneratorTarget.cxx:2853:9
frame #20: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151896e00, config="", lc=0x000000016ce207e0) const at cmGeneratorTarget.cxx:2898:24
frame #21: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x0000000151896e00, config="") const at cmGeneratorTarget.cxx:2784:11
frame #22: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x0000000151896e00, config="") const at cmGeneratorTarget.cxx:5396:16
frame #23: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x0000000151896e00, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #24: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x0000000151896e00, config="") const at cmGeneratorTarget.cxx:5180:9
frame #25: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x0000000151896e00, config="") const at cmGeneratorTarget.cxx:5139:16
frame #26: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x0000000151896e00, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #27: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x0000000151896e00, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #28: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x0000000151896e00, context=0x000000016ce216b0, (null)=0x00006000046c9860) at cmGeneratorExpressionNode.cxx:2824:20
frame #29: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce216b0, content=0x00006000046c9860, dagChecker=0x000000016ce21a30) const at cmGeneratorExpressionNode.cxx:2930:7
frame #30: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x00006000046c9860, context=0x000000016ce216b0, dagChecker=0x000000016ce21a30) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #31: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c24700, context=0x000000016ce216b0, dagChecker=0x000000016ce21a30) const at cmGeneratorExpression.cxx:74:25
frame #32: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c24700, lg=0x000000014fa2b2e0, config="", headTarget=0x000000015186f600, dagChecker=0x000000016ce21a30, currentTarget=0x0000000151897a00, language="C") const at cmGeneratorExpression.cxx:60:16
frame #33: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x0000000151897a00, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce21ac0, config="", headTarget=0x000000015186f600, interfaceFor=Usage, field=Libraries, iface=0x000000014f81d9e8) const at cmGeneratorTarget.cxx:6763:12
frame #34: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x0000000151897a00, config="", iface=0x000000014f81d9e8, headTarget=0x000000015186f600, interfaceFor=Usage) const at cmGeneratorTarget.cxx:7318:11
frame #35: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x0000000151897a00, config="", head=0x000000015186f600, interfaceFor=Usage) const at cmGeneratorTarget.cxx:6971:11
frame #36: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce225e8, target=0x0000000151897a00) at cmGeneratorTarget.cxx:8099:13
frame #37: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce225e8, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #38: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce225e8) at cmGeneratorTarget.cxx:8145:11
frame #39: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x000000015186f600, config="", implFor=Usage, impl=0x0000600001028fe8) at cmGeneratorTarget.cxx:8167:22
frame #40: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x000000015186f600, config="", impl=0x0000600001028fe8, head=0x000000015186f600, implFor=Usage) const at cmGeneratorTarget.cxx:8293:5
frame #41: 0x0000000103548128 cmake`cmGeneratorTarget::GetLinkImplementationLibrariesInternal(this=0x000000015186f600, config="", head=0x000000015186f600, implFor=Usage) const at cmGeneratorTarget.cxx:8051:11
frame #42: 0x000000010352b618 cmake`cmGeneratorTarget::GetLinkImplementationLibraries(this=0x000000015186f600, config="", implFor=Usage) const at cmGeneratorTarget.cxx:8023:16
frame #43: 0x00000001035218d8 cmake`(anonymous namespace)::AddInterfaceEntries(headTarget=0x000000015186f600, config="", prop="INTERFACE_SOURCES", lang="", dagChecker=0x000000016ce23038, entries=0x000000016ce22f98, searchRuntime=No, interfaceFor=Usage)::EvaluatedTargetPropertyEntries&, (anonymous namespace)::IncludeRuntimeInterface, cmGeneratorTarget::LinkInterfaceFor) at cmGeneratorTarget.cxx:1631:23
frame #44: 0x000000010352092c cmake`cmGeneratorTarget::GetSourceFilePaths(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:1882:3
frame #45: 0x0000000103522f7c cmake`cmGeneratorTarget::ComputeKindedSources(this=0x000000015186f600, files=0x00006000001050b8, config="") const at cmGeneratorTarget.cxx:2022:45
frame #46: 0x000000010351a2f0 cmake`cmGeneratorTarget::GetKindedSources(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:2013:9
frame #47: 0x0000000103522460 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:1951:39
frame #48: 0x00000001035221e8 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000015186f600, files=size=0, config="") const at cmGeneratorTarget.cxx:1922:46
frame #49: 0x000000010354d5a8 cmake`cmGeneratorTarget::GetLanguages(this=0x000000015186f600, languages=size=0, config="") const at cmGeneratorTarget.cxx:7923:9
frame #50: 0x000000010354c918 cmake`cmGeneratorTarget::ComputeLinkImplementationLanguages(this=0x000000015186f600, config="", impl=0x00006000010084a8) const at cmGeneratorTarget.cxx:7997:9
frame #51: 0x00000001035294fc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x000000015186f600, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7752:11
frame #52: 0x0000000103528fe0 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x000000015186f600, config="", lc=0x000000016ce241b0, secondPass=false) const at cmGeneratorTarget.cxx:2844:11
frame #53: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x000000015186f600, config="", lc=0x000000016ce242d0) const at cmGeneratorTarget.cxx:2898:24
frame #54: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:2784:11
frame #55: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5396:16
frame #56: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #57: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5180:9
frame #58: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5139:16
frame #59: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #60: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #61: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x000000015186f600, context=0x000000016ce251a0, (null)=0x00006000046c9630) at cmGeneratorExpressionNode.cxx:2824:20
frame #62: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce251a0, content=0x00006000046c9630, dagChecker=0x000000016ce25520) const at cmGeneratorExpressionNode.cxx:2930:7
frame #63: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x00006000046c9630, context=0x000000016ce251a0, dagChecker=0x000000016ce25520) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #64: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c24620, context=0x000000016ce251a0, dagChecker=0x000000016ce25520) const at cmGeneratorExpression.cxx:74:25
frame #65: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c24620, lg=0x000000014fa2b2e0, config="", headTarget=0x00000001518a2800, dagChecker=0x000000016ce25520, currentTarget=0x0000000151897400, language="C") const at cmGeneratorExpression.cxx:60:16
frame #66: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x0000000151897400, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce255b0, config="", headTarget=0x00000001518a2800, interfaceFor=Link, field=Libraries, iface=0x000000014f81d8d8) const at cmGeneratorTarget.cxx:6763:12
frame #67: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x0000000151897400, config="", iface=0x000000014f81d8d8, headTarget=0x00000001518a2800, interfaceFor=Link) const at cmGeneratorTarget.cxx:7318:11
frame #68: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x0000000151897400, config="", head=0x00000001518a2800, interfaceFor=Link) const at cmGeneratorTarget.cxx:6971:11
frame #69: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce260d8, target=0x0000000151897400) at cmGeneratorTarget.cxx:8099:13
frame #70: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce260d8, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #71: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce260d8) at cmGeneratorTarget.cxx:8145:11
frame #72: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x00000001518a2800, config="", implFor=Link, impl=0x000060000102d2e8) at cmGeneratorTarget.cxx:8167:22
frame #73: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x00000001518a2800, config="", impl=0x000060000102d2e8, head=0x00000001518a2800, implFor=Link) const at cmGeneratorTarget.cxx:8293:5
frame #74: 0x00000001035294cc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x00000001518a2800, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7748:11
frame #75: 0x0000000103528fe0 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x00000001518a2800, config="", lc=0x000000016ce26d10, secondPass=false) const at cmGeneratorTarget.cxx:2844:11
frame #76: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x00000001518a2800, config="", lc=0x000000016ce26e30) const at cmGeneratorTarget.cxx:2898:24
frame #77: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x00000001518a2800, config="") const at cmGeneratorTarget.cxx:2784:11
frame #78: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x00000001518a2800, config="") const at cmGeneratorTarget.cxx:5396:16
frame #79: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x00000001518a2800, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #80: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x00000001518a2800, config="") const at cmGeneratorTarget.cxx:5180:9
frame #81: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x00000001518a2800, config="") const at cmGeneratorTarget.cxx:5139:16
frame #82: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x00000001518a2800, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #83: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x00000001518a2800, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #84: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x00000001518a2800, context=0x000000016ce27d00, (null)=0x0000600004697ed0) at cmGeneratorExpressionNode.cxx:2824:20
frame #85: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce27d00, content=0x0000600004697ed0, dagChecker=0x000000016ce28080) const at cmGeneratorExpressionNode.cxx:2930:7
frame #86: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x0000600004697ed0, context=0x000000016ce27d00, dagChecker=0x000000016ce28080) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #87: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c2c2a0, context=0x000000016ce27d00, dagChecker=0x000000016ce28080) const at cmGeneratorExpression.cxx:74:25
frame #88: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c2c2a0, lg=0x000000014fa2bf00, config="", headTarget=0x000000015186f600, dagChecker=0x000000016ce28080, currentTarget=0x00000001518a2800, language="C") const at cmGeneratorExpression.cxx:60:16
frame #89: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x00000001518a2800, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce28110, config="", headTarget=0x000000015186f600, interfaceFor=Link, field=Libraries, iface=0x000000014d729b18) const at cmGeneratorTarget.cxx:6763:12
frame #90: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x00000001518a2800, config="", iface=0x000000014d729b18, headTarget=0x000000015186f600, interfaceFor=Link) const at cmGeneratorTarget.cxx:7318:11
frame #91: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x00000001518a2800, config="", head=0x000000015186f600, interfaceFor=Link) const at cmGeneratorTarget.cxx:6971:11
frame #92: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x00000001518a2800) at cmGeneratorTarget.cxx:8099:13
frame #93: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x00000001518b2800) at cmGeneratorTarget.cxx:8121:11
frame #94: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x000000015187a400) at cmGeneratorTarget.cxx:8121:11
frame #95: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x000000015187ce00) at cmGeneratorTarget.cxx:8121:11
frame #96: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x000000015187f800) at cmGeneratorTarget.cxx:8121:11
frame #97: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x0000000151887e00) at cmGeneratorTarget.cxx:8121:11
frame #98: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x0000000151882a00) at cmGeneratorTarget.cxx:8121:11
frame #99: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x0000000151885400) at cmGeneratorTarget.cxx:8121:11
frame #100: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x000000015188d200) at cmGeneratorTarget.cxx:8121:11
frame #101: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x000000015189a400) at cmGeneratorTarget.cxx:8121:11
frame #102: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x0000000151892000) at cmGeneratorTarget.cxx:8121:11
frame #103: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce29458, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #104: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce29458) at cmGeneratorTarget.cxx:8145:11
frame #105: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x000000015186f600, config="", implFor=Link, impl=0x00006000010084a8) at cmGeneratorTarget.cxx:8167:22
frame #106: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x000000015186f600, config="", impl=0x00006000010084a8, head=0x000000015186f600, implFor=Link) const at cmGeneratorTarget.cxx:8293:5
frame #107: 0x00000001035294cc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x000000015186f600, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7748:11
frame #108: 0x0000000103528fe0 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x000000015186f600, config="", lc=0x000000016ce2a090, secondPass=false) const at cmGeneratorTarget.cxx:2844:11
frame #109: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x000000015186f600, config="", lc=0x000000016ce2a1b0) const at cmGeneratorTarget.cxx:2898:24
frame #110: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:2784:11
frame #111: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5396:16
frame #112: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #113: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5180:9
frame #114: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x000000015186f600, config="") const at cmGeneratorTarget.cxx:5139:16
frame #115: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #116: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x000000015186f600, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #117: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x000000015186f600, context=0x000000016ce2b080, (null)=0x00006000006328f0) at cmGeneratorExpressionNode.cxx:2824:20
frame #118: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce2b080, content=0x00006000006328f0, dagChecker=0x000000016ce2b400) const at cmGeneratorExpressionNode.cxx:2930:7
frame #119: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x00006000006328f0, context=0x000000016ce2b080, dagChecker=0x000000016ce2b400) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #120: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c08380, context=0x000000016ce2b080, dagChecker=0x000000016ce2b400) const at cmGeneratorExpression.cxx:74:25
frame #121: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c08380, lg=0x000000014fa2b2e0, config="", headTarget=0x0000000151892000, dagChecker=0x000000016ce2b400, currentTarget=0x0000000151897400, language="C") const at cmGeneratorExpression.cxx:60:16
frame #122: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x0000000151897400, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce2b490, config="", headTarget=0x0000000151892000, interfaceFor=Usage, field=Libraries, iface=0x000000014fb05a08) const at cmGeneratorTarget.cxx:6763:12
frame #123: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x0000000151897400, config="", iface=0x000000014fb05a08, headTarget=0x0000000151892000, interfaceFor=Usage) const at cmGeneratorTarget.cxx:7318:11
frame #124: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x0000000151897400, config="", head=0x0000000151892000, interfaceFor=Usage) const at cmGeneratorTarget.cxx:6971:11
frame #125: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce2bfb8, target=0x0000000151897400) at cmGeneratorTarget.cxx:8099:13
frame #126: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce2bfb8, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #127: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce2bfb8) at cmGeneratorTarget.cxx:8145:11
frame #128: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x0000000151892000, config="", implFor=Usage, impl=0x000060000103c1a8) at cmGeneratorTarget.cxx:8167:22
frame #129: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x0000000151892000, config="", impl=0x000060000103c1a8, head=0x0000000151892000, implFor=Usage) const at cmGeneratorTarget.cxx:8293:5
frame #130: 0x0000000103548128 cmake`cmGeneratorTarget::GetLinkImplementationLibrariesInternal(this=0x0000000151892000, config="", head=0x0000000151892000, implFor=Usage) const at cmGeneratorTarget.cxx:8051:11
frame #131: 0x000000010352b618 cmake`cmGeneratorTarget::GetLinkImplementationLibraries(this=0x0000000151892000, config="", implFor=Usage) const at cmGeneratorTarget.cxx:8023:16
frame #132: 0x00000001035218d8 cmake`(anonymous namespace)::AddInterfaceEntries(headTarget=0x0000000151892000, config="", prop="INTERFACE_SOURCES", lang="", dagChecker=0x000000016ce2ca08, entries=0x000000016ce2c968, searchRuntime=No, interfaceFor=Usage)::EvaluatedTargetPropertyEntries&, (anonymous namespace)::IncludeRuntimeInterface, cmGeneratorTarget::LinkInterfaceFor) at cmGeneratorTarget.cxx:1631:23
frame #133: 0x000000010352092c cmake`cmGeneratorTarget::GetSourceFilePaths(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:1882:3
frame #134: 0x0000000103522f7c cmake`cmGeneratorTarget::ComputeKindedSources(this=0x0000000151892000, files=0x0000600000104ff8, config="") const at cmGeneratorTarget.cxx:2022:45
frame #135: 0x000000010351a2f0 cmake`cmGeneratorTarget::GetKindedSources(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:2013:9
frame #136: 0x0000000103522460 cmake`cmGeneratorTarget::GetSourceFiles(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:1951:39
frame #137: 0x00000001035221e8 cmake`cmGeneratorTarget::GetSourceFiles(this=0x0000000151892000, files=size=0, config="") const at cmGeneratorTarget.cxx:1922:46
frame #138: 0x000000010354d5a8 cmake`cmGeneratorTarget::GetLanguages(this=0x0000000151892000, languages=size=0, config="") const at cmGeneratorTarget.cxx:7923:9
frame #139: 0x000000010354c918 cmake`cmGeneratorTarget::ComputeLinkImplementationLanguages(this=0x0000000151892000, config="", impl=0x000060000102d5e8) const at cmGeneratorTarget.cxx:7997:9
frame #140: 0x00000001035294fc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x0000000151892000, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7752:11
frame #141: 0x0000000103528fe0 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151892000, config="", lc=0x000000016ce2db80, secondPass=false) const at cmGeneratorTarget.cxx:2844:11
frame #142: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151892000, config="", lc=0x000000016ce2dca0) const at cmGeneratorTarget.cxx:2898:24
frame #143: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:2784:11
frame #144: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5396:16
frame #145: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #146: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5180:9
frame #147: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5139:16
frame #148: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #149: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #150: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x0000000151892000, context=0x000000016ce2eb70, (null)=0x00006000046c8ff0) at cmGeneratorExpressionNode.cxx:2824:20
frame #151: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce2eb70, content=0x00006000046c8ff0, dagChecker=0x000000016ce2eef0) const at cmGeneratorExpressionNode.cxx:2930:7
frame #152: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x00006000046c8ff0, context=0x000000016ce2eb70, dagChecker=0x000000016ce2eef0) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #153: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c24540, context=0x000000016ce2eb70, dagChecker=0x000000016ce2eef0) const at cmGeneratorExpression.cxx:74:25
frame #154: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c24540, lg=0x000000014fa2ad80, config="", headTarget=0x0000000151892000, dagChecker=0x000000016ce2eef0, currentTarget=0x0000000151892000, language="C") const at cmGeneratorExpression.cxx:60:16
frame #155: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x0000000151892000, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce2ef80, config="", headTarget=0x0000000151892000, interfaceFor=Link, field=Libraries, iface=0x000000014f81c058) const at cmGeneratorTarget.cxx:6763:12
frame #156: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x0000000151892000, config="", iface=0x000000014f81c058, headTarget=0x0000000151892000, interfaceFor=Link) const at cmGeneratorTarget.cxx:7318:11
frame #157: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x0000000151892000, config="", head=0x0000000151892000, interfaceFor=Link) const at cmGeneratorTarget.cxx:6971:11
frame #158: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce2faa8, target=0x0000000151892000) at cmGeneratorTarget.cxx:8099:13
frame #159: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce2faa8, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #160: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce2faa8) at cmGeneratorTarget.cxx:8145:11
frame #161: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x0000000151892000, config="", implFor=Link, impl=0x000060000102d5e8) at cmGeneratorTarget.cxx:8167:22
frame #162: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x0000000151892000, config="", impl=0x000060000102d5e8, head=0x0000000151892000, implFor=Link) const at cmGeneratorTarget.cxx:8293:5
frame #163: 0x00000001035294cc cmake`cmGeneratorTarget::GetLinkImplementation(this=0x0000000151892000, config="", implFor=Link, secondPass=false) const at cmGeneratorTarget.cxx:7748:11
frame #164: 0x0000000103528fe0 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151892000, config="", lc=0x000000016ce306e0, secondPass=false) const at cmGeneratorTarget.cxx:2844:11
frame #165: 0x0000000103528c08 cmake`cmGeneratorTarget::ComputeLinkClosure(this=0x0000000151892000, config="", lc=0x000000016ce30800) const at cmGeneratorTarget.cxx:2898:24
frame #166: 0x00000001035288ec cmake`cmGeneratorTarget::GetLinkClosure(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:2784:11
frame #167: 0x0000000103524ad8 cmake`cmGeneratorTarget::GetLinkerLanguage(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5396:16
frame #168: 0x0000000103517de8 cmake`cmGeneratorTarget::GetFullNameInternal(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, outPrefix="", outBase="", outSuffix="") const at cmGeneratorTarget.cxx:5332:26
frame #169: 0x0000000103526c48 cmake`cmGeneratorTarget::GetLibraryNames(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5180:9
frame #170: 0x000000010353ac94 cmake`cmGeneratorTarget::NormalGetRealName(this=0x0000000151892000, config="") const at cmGeneratorTarget.cxx:5139:16
frame #171: 0x000000010353aa40 cmake`cmGeneratorTarget::NormalGetFullPath(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5109:24
frame #172: 0x000000010351c8f0 cmake`cmGeneratorTarget::GetFullPath(this=0x0000000151892000, config="", artifact=RuntimeBinaryArtifact, realname=true) const at cmGeneratorTarget.cxx:5092:16
frame #173: 0x00000001034f5944 cmake`TargetFilesystemArtifactResultCreator<ArtifactNameTag>::Create(target=0x0000000151892000, context=0x000000016ce316d0, (null)=0x00006000004d1770) at cmGeneratorExpressionNode.cxx:2824:20
frame #174: 0x00000001034f5490 cmake`TargetFilesystemArtifact<ArtifactNameTag, ArtifactPathTag>::Evaluate(this=0x00000001045550c0, parameters=size=1, context=0x000000016ce316d0, content=0x00006000004d1770, dagChecker=0x000000016ce31a50) const at cmGeneratorExpressionNode.cxx:2930:7
frame #175: 0x0000000103492f30 cmake`GeneratorExpressionContent::Evaluate(this=0x00006000004d1770, context=0x000000016ce316d0, dagChecker=0x000000016ce31a50) const at cmGeneratorExpressionEvaluator.cxx:104:16
frame #176: 0x00000001035060d8 cmake`cmCompiledGeneratorExpression::EvaluateWithContext(this=0x0000600001c30380, context=0x000000016ce316d0, dagChecker=0x000000016ce31a50) const at cmGeneratorExpression.cxx:74:25
frame #177: 0x0000000103505fa4 cmake`cmCompiledGeneratorExpression::Evaluate(this=0x0000600001c30380, lg=0x000000014fa2ad80, config="", headTarget=0x000000014e856c00, dagChecker=0x000000016ce31a50, currentTarget=0x0000000151892000, language="C") const at cmGeneratorExpression.cxx:60:16
frame #178: 0x00000001035459d4 cmake`cmGeneratorTarget::ExpandLinkItems(this=0x0000000151892000, prop="INTERFACE_LINK_LIBRARIES", entries=cmBTStringRange @ 0x000000016ce31ae0, config="", headTarget=0x000000014e856c00, interfaceFor=Usage, field=Libraries, iface=0x000000014fd075b8) const at cmGeneratorTarget.cxx:6763:12
frame #179: 0x0000000103547130 cmake`cmGeneratorTarget::ComputeLinkInterfaceLibraries(this=0x0000000151892000, config="", iface=0x000000014fd075b8, headTarget=0x000000014e856c00, interfaceFor=Usage) const at cmGeneratorTarget.cxx:7318:11
frame #180: 0x000000010351fbbc cmake`cmGeneratorTarget::GetLinkInterfaceLibraries(this=0x0000000151892000, config="", head=0x000000014e856c00, interfaceFor=Usage) const at cmGeneratorTarget.cxx:6971:11
frame #181: 0x0000000103567f58 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce32608, target=0x0000000151892000) at cmGeneratorTarget.cxx:8099:13
frame #182: 0x0000000103568094 cmake`(anonymous namespace)::TransitiveLinkImpl::Follow(this=0x000000016ce32608, target=0x0000000151896e00) at cmGeneratorTarget.cxx:8121:11
frame #183: 0x0000000103567200 cmake`(anonymous namespace)::TransitiveLinkImpl::Compute(this=0x000000016ce32608) at cmGeneratorTarget.cxx:8145:11
frame #184: 0x000000010354e258 cmake`(anonymous namespace)::ComputeLinkImplTransitive(self=0x000000014e856c00, config="", implFor=Usage, impl=0x0000600001030ce8) at cmGeneratorTarget.cxx:8167:22
frame #185: 0x000000010354c644 cmake`cmGeneratorTarget::ComputeLinkImplementationLibraries(this=0x000000014e856c00, config="", impl=0x0000600001030ce8, head=0x000000014e856c00, implFor=Usage) const at cmGeneratorTarget.cxx:8293:5
frame #186: 0x0000000103548128 cmake`cmGeneratorTarget::GetLinkImplementationLibrariesInternal(this=0x000000014e856c00, config="", head=0x000000014e856c00, implFor=Usage) const at cmGeneratorTarget.cxx:8051:11
frame #187: 0x000000010352b618 cmake`cmGeneratorTarget::GetLinkImplementationLibraries(this=0x000000014e856c00, config="", implFor=Usage) const at cmGeneratorTarget.cxx:8023:16
frame #188: 0x00000001035218d8 cmake`(anonymous namespace)::AddInterfaceEntries(headTarget=0x000000014e856c00, config="", prop="INTERFACE_SOURCES", lang="", dagChecker=0x000000016ce33058, entries=0x000000016ce32fb8, searchRuntime=No, interfaceFor=Usage)::EvaluatedTargetPropertyEntries&, (anonymous namespace)::IncludeRuntimeInterface, cmGeneratorTarget::LinkInterfaceFor) at cmGeneratorTarget.cxx:1631:23
frame #189: 0x000000010352092c cmake`cmGeneratorTarget::GetSourceFilePaths(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:1882:3
frame #190: 0x0000000103522f7c cmake`cmGeneratorTarget::ComputeKindedSources(this=0x000000014e856c00, files=0x0000600000134338, config="") const at cmGeneratorTarget.cxx:2022:45
frame #191: 0x000000010351a2f0 cmake`cmGeneratorTarget::GetKindedSources(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:2013:9
frame #192: 0x0000000103522460 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000014e856c00, config="") const at cmGeneratorTarget.cxx:1951:39
frame #193: 0x00000001035221e8 cmake`cmGeneratorTarget::GetSourceFiles(this=0x000000014e856c00, files=size=0, config="") const at cmGeneratorTarget.cxx:1922:46
frame #194: 0x00000001036cd550 cmake`cmLocalGenerator::AddPchDependencies(this=0x000000014d605b90, target=0x000000014e856c00) at cmLocalGenerator.cxx:2566:13
frame #195: 0x00000001035de7dc cmake`cmGlobalGenerator::AddAutomaticSources(this=0x000000014d80d000) at cmGlobalGenerator.cxx:1788:13
frame #196: 0x00000001035ddc10 cmake`cmGlobalGenerator::Compute(this=0x000000014d80d000) at cmGlobalGenerator.cxx:1515:14
frame #197: 0x0000000103a1de44 cmake`cmake::Generate(this=0x000000016ce353f0) at cmake.cxx:2594:31
frame #198: 0x0000000103a1c6c8 cmake`cmake::Run(this=0x000000016ce353f0, args=size=5, noconfigure=false) at cmake.cxx:2572:15
frame #199: 0x0000000102fd0d8c cmake`(anonymous namespace)::do_cmake(ac=5, av=0x0000600002b2d4a0) at cmakemain.cxx:362:16
frame #200: 0x0000000102fcd3cc cmake`main(ac=5, av=0x0000600002b2d4a0) at cmakemain.cxx:1074:13
frame #201: 0x0000000109b59088 dyld`start + 516
I'm not familiar with CMake codebase yet, so I can't figure out whether I am doing something in my project that isn't allowed, or CMake isn't handling this dependency cycle correctly. It looks like the first GetSourceFiles
call descends into AddInterfaceEntries(... INTERFACE_SOURCES ...)
which results in traversing the dependency graph, eventually arriving to the same library target.
I'd also like to note that I can make the issue disappear by slightly altering the dependencies in the project, so I do have a workaround. However this issue has already come up a few times, so I'd like to understand why it occurs. I would appreciate any debugging suggestions!
I can post the steps to reproduce this, however they currently require our entire project and are a bit tricky. I haven't managed to find a simple reproducer for this, yet.
I found #19388 (closed) which looks similar, but as far as I can tell all my libraries are either STATIC, INTERFACE or ALIAS.