diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-01-23 21:17:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-01-24 13:17:46 (GMT) |
commit | 6fbe3ce4ef1178cc4f2f14f281cd48ef82a11e03 (patch) | |
tree | a7eefb8914cf7e8b50bd13875b7f6880e7aea900 /Tests/CompatibleInterface/CMakeLists.txt | |
parent | 76ace2b95aba4b12c049224aa8a2d18c67129d45 (diff) | |
download | CMake-6fbe3ce4ef1178cc4f2f14f281cd48ef82a11e03.zip CMake-6fbe3ce4ef1178cc4f2f14f281cd48ef82a11e03.tar.gz CMake-6fbe3ce4ef1178cc4f2f14f281cd48ef82a11e03.tar.bz2 |
Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.
These interface-related link-libraries properties are used to determine
the value of the other INTERFACE properties, so we were getting infinite
recursion and segfaults otherwise.
Diffstat (limited to 'Tests/CompatibleInterface/CMakeLists.txt')
-rw-r--r-- | Tests/CompatibleInterface/CMakeLists.txt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Tests/CompatibleInterface/CMakeLists.txt b/Tests/CompatibleInterface/CMakeLists.txt index d0eb60f..7280652 100644 --- a/Tests/CompatibleInterface/CMakeLists.txt +++ b/Tests/CompatibleInterface/CMakeLists.txt @@ -3,12 +3,16 @@ cmake_minimum_required(VERSION 2.8) project(CompatibleInterface) +include(GenerateExportHeader) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + add_library(iface1 empty.cpp) set_property(TARGET iface1 APPEND PROPERTY COMPATIBLE_INTERFACE_BOOL BOOL_PROP1 BOOL_PROP2 BOOL_PROP3 + BOOL_PROP4 ) set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP1 ON) @@ -26,3 +30,15 @@ target_compile_definitions(CompatibleInterface $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP2>>:BOOL_PROP2> $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP3>>:BOOL_PROP3> ) + + +add_library(iface2 SHARED iface2.cpp) +generate_export_header(iface2) + +# For the LINK_LIBRARIES and related properties, we should not evaluate +# properties defined only in the interface - they should be implicitly zero +set_property(TARGET iface2 + APPEND PROPERTY + LINK_INTERFACE_LIBRARIES $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP4>>:nonexistant> +) +target_link_libraries(CompatibleInterface iface2) |