• Stephen Kelly's avatar
    Genex: Fix stack overflow in transitive property evaluation. · 61ce6547
    Stephen Kelly authored
    Commit v2.8.11~156^2~2 (Expand includes and defines transitively
    in 'external' genexes., 2013-02-13) introduced a recursive loop
    and a stack overflow during evaluation of a link implementation
    which depends on a transitive property, such as
    
     add_library(empty1 ...)
     add_library(empty2 ...)
     target_link_libraries(empty1
       PRIVATE
         $<$<STREQUAL:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>,/foo/bar>:empty2>
     )
    
    There is no use-case for code like that currently, but it should not
    cause a stack overflow.
    
    Avoid the recursion by reporting an error early if a case like this
    is found.
    61ce6547
LinkImplementationCycle3.cmake 302 Bytes