Skip to content
  • Brad King's avatar
    Diagnose object library self-reference · d89e10cd
    Brad King authored
    The code
    
        add_library(A OBJECT a.c)
        target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
    
    used to crash CMake via infinite recursion while evaluating the
    generator expression.  Then the change in commit v3.9.0-rc1~266^2~1
    (cmGeneratorTarget: Replace source classifier implementation,
    2017-04-07) avoided the infinite recursion because GetKindedSources now
    creates a map entry and initializes it once.  If it is called again on
    the same target during that initialization, the partially computed
    results are returned.  This is still wrong but does not crash.
    Detect and diagnose this case instead.
    
    Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
    Fixes: #16578
    d89e10cd