61ce654742
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.
24 lines
649 B
CMake
24 lines
649 B
CMake
include(RunCMake)
|
|
|
|
run_cmake(BadSelfReference1)
|
|
run_cmake(BadSelfReference2)
|
|
run_cmake(BadSelfReference3)
|
|
run_cmake(BadSelfReference4)
|
|
run_cmake(BadSelfReference5)
|
|
run_cmake(BadSelfReference6)
|
|
run_cmake(BadNonTarget)
|
|
run_cmake(BadInvalidName1)
|
|
run_cmake(BadInvalidName2)
|
|
run_cmake(BadInvalidName3)
|
|
run_cmake(BadInvalidName4)
|
|
run_cmake(BadInvalidName5)
|
|
run_cmake(BadInvalidName6)
|
|
run_cmake(BadInvalidName7)
|
|
run_cmake(BadInvalidName8)
|
|
run_cmake(LinkImplementationCycle1)
|
|
run_cmake(LinkImplementationCycle2)
|
|
run_cmake(LinkImplementationCycle3)
|
|
run_cmake(LinkImplementationCycle4)
|
|
run_cmake(LinkImplementationCycle5)
|
|
run_cmake(LinkImplementationCycle6)
|