mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-29 02:19:18 -05:00
01c545c596
If the dependent target sets the property to boolean false, ensure
that that appears in the debug report. Previously, the report
output contained whether the property was consistent among dependencies,
displaying 'TRUE', instead of the content of the property, which may
be 'FALSE'.
Return a std::pair from the consistentProperty method. This makes
it possible to make the return value for string types easier to
reason about. The return value of consistentProperty was previously
set to an empty static string to emulate a 'true' value for the caller
in commit 816b4a8a (cmTarget: Make consistentProperty
return consistent content., 2013-10-22). The pair makes the
consistency result properly typed.
68 lines
2.3 KiB
CMake
68 lines
2.3 KiB
CMake
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
project(CompatibleInterface)
|
|
|
|
include(GenerateExportHeader)
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
add_library(iface1 INTERFACE)
|
|
set_property(TARGET iface1 APPEND PROPERTY
|
|
COMPATIBLE_INTERFACE_BOOL
|
|
BOOL_PROP1
|
|
BOOL_PROP2
|
|
BOOL_PROP3
|
|
BOOL_PROP4
|
|
BOOL_PROP5
|
|
BOOL_PROP6
|
|
)
|
|
set_property(TARGET iface1 APPEND PROPERTY
|
|
COMPATIBLE_INTERFACE_STRING
|
|
STRING_PROP1
|
|
STRING_PROP2
|
|
STRING_PROP3
|
|
)
|
|
set_property(TARGET iface1 APPEND PROPERTY
|
|
COMPATIBLE_INTERFACE_NUMBER_MIN
|
|
NUMBER_MIN_PROP1
|
|
NUMBER_MIN_PROP2
|
|
)
|
|
set_property(TARGET iface1 APPEND PROPERTY
|
|
COMPATIBLE_INTERFACE_NUMBER_MAX
|
|
NUMBER_MAX_PROP1
|
|
NUMBER_MAX_PROP2
|
|
)
|
|
|
|
set(CMAKE_DEBUG_TARGET_PROPERTIES
|
|
BOOL_PROP1 BOOL_PROP2 BOOL_PROP3 BOOL_PROP4 BOOL_PROP5 BOOL_PROP6
|
|
STRING_PROP1 STRING_PROP2 STRING_PROP3
|
|
NUMBER_MIN_PROP1 NUMBER_MIN_PROP2
|
|
NUMBER_MAX_PROP1 NUMBER_MAX_PROP2
|
|
)
|
|
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP1 ON)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP2 ON)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP5 OFF)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP6 OFF)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP1 prop1)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_STRING_PROP2 prop2)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP1 100)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MIN_PROP2 200)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP1 100)
|
|
set_property(TARGET iface1 PROPERTY INTERFACE_NUMBER_MAX_PROP2 200)
|
|
|
|
add_library(iface2 INTERFACE)
|
|
set_property(TARGET iface2 PROPERTY INTERFACE_BOOL_PROP6 OFF)
|
|
|
|
add_executable(CompatibleInterface empty.cpp)
|
|
target_link_libraries(CompatibleInterface iface1 iface2)
|
|
|
|
set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP2 ON)
|
|
set_property(TARGET CompatibleInterface PROPERTY BOOL_PROP3 ON)
|
|
set_property(TARGET CompatibleInterface PROPERTY STRING_PROP2 prop2)
|
|
set_property(TARGET CompatibleInterface PROPERTY STRING_PROP3 prop3)
|
|
set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP1 50)
|
|
set_property(TARGET CompatibleInterface PROPERTY NUMBER_MIN_PROP2 250)
|
|
set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP1 50)
|
|
set_property(TARGET CompatibleInterface PROPERTY NUMBER_MAX_PROP2 250)
|