mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-19 19:43:23 +08:00
Tests: Extend CustomTransitiveProperties with non-transitive LINK_LIBRARIES
This commit is contained in:
@@ -93,7 +93,7 @@ target_compile_definitions(CustomTransitiveProperties PRIVATE
|
|||||||
# Test TRANSITIVE_*_PROPERTY evaluation outside of usage requirements.
|
# Test TRANSITIVE_*_PROPERTY evaluation outside of usage requirements.
|
||||||
add_executable(check-args check-args.c)
|
add_executable(check-args check-args.c)
|
||||||
set(out "${CMAKE_CURRENT_BINARY_DIR}/out-$<CONFIG>.txt")
|
set(out "${CMAKE_CURRENT_BINARY_DIR}/out-$<CONFIG>.txt")
|
||||||
file(GENERATE OUTPUT "${out}" CONTENT "# file(GENERATE) produced:
|
set(in_CUSTOM [====[
|
||||||
iface1 CUSTOM_A: '$<TARGET_PROPERTY:iface1,CUSTOM_A>'
|
iface1 CUSTOM_A: '$<TARGET_PROPERTY:iface1,CUSTOM_A>'
|
||||||
iface1 INTERFACE_CUSTOM_A: '$<TARGET_PROPERTY:iface1,INTERFACE_CUSTOM_A>'
|
iface1 INTERFACE_CUSTOM_A: '$<TARGET_PROPERTY:iface1,INTERFACE_CUSTOM_A>'
|
||||||
iface2 CUSTOM_A: '$<TARGET_PROPERTY:iface2,CUSTOM_A>'
|
iface2 CUSTOM_A: '$<TARGET_PROPERTY:iface2,CUSTOM_A>'
|
||||||
@@ -126,6 +126,20 @@ main CUSTOM_V: '$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_V>'
|
|||||||
main INTERFACE_CUSTOM_V: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_V>'
|
main INTERFACE_CUSTOM_V: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_V>'
|
||||||
main CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>'
|
main CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>'
|
||||||
main INTERFACE_CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_W>'
|
main INTERFACE_CUSTOM_W: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_CUSTOM_W>'
|
||||||
|
]====])
|
||||||
|
set(in_LINK_LIBRARIES [====[
|
||||||
|
iface1 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface1,LINK_LIBRARIES>'
|
||||||
|
iface1 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface1,INTERFACE_LINK_LIBRARIES>'
|
||||||
|
iface2 LINK_LIBRARIES: '$<TARGET_PROPERTY:iface2,LINK_LIBRARIES>'
|
||||||
|
iface2 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:iface2,INTERFACE_LINK_LIBRARIES>'
|
||||||
|
static1 LINK_LIBRARIES: '$<TARGET_PROPERTY:static1,LINK_LIBRARIES>'
|
||||||
|
static1 INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:static1,INTERFACE_LINK_LIBRARIES>'
|
||||||
|
main LINK_LIBRARIES: '$<TARGET_PROPERTY:CustomTransitiveProperties,LINK_LIBRARIES>'
|
||||||
|
main INTERFACE_LINK_LIBRARIES: '$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_LINK_LIBRARIES>'
|
||||||
|
]====])
|
||||||
|
file(GENERATE OUTPUT "${out}" CONTENT "# file(GENERATE) produced:
|
||||||
|
${in_CUSTOM}
|
||||||
|
${in_LINK_LIBRARIES}
|
||||||
")
|
")
|
||||||
add_custom_target(check ALL VERBATIM
|
add_custom_target(check ALL VERBATIM
|
||||||
COMMAND ${CMAKE_COMMAND} -Dconfig=$<CONFIG> -Dout=${out} -P${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
|
COMMAND ${CMAKE_COMMAND} -Dconfig=$<CONFIG> -Dout=${out} -P${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
|
||||||
@@ -145,4 +159,13 @@ add_custom_target(check ALL VERBATIM
|
|||||||
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_U>" "CUSTOM_U_MAIN;CUSTOM_U_STATIC1_IFACE;CUSTOM_U_IFACE2;CUSTOM_U_TARGET_TYPE_EXECUTABLE;CUSTOM_U_IFACE1;CUSTOM_U_TARGET_NAME_CUSTOMTRANSITIVEPROPERTIES;CUSTOM_U_OBJECT1_IFACE"
|
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_U>" "CUSTOM_U_MAIN;CUSTOM_U_STATIC1_IFACE;CUSTOM_U_IFACE2;CUSTOM_U_TARGET_TYPE_EXECUTABLE;CUSTOM_U_IFACE1;CUSTOM_U_TARGET_NAME_CUSTOMTRANSITIVEPROPERTIES;CUSTOM_U_OBJECT1_IFACE"
|
||||||
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_V>" "CUSTOM_V_MAIN;CUSTOM_V_STATIC1_IFACE;CUSTOM_V_IFACE1"
|
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_V>" "CUSTOM_V_MAIN;CUSTOM_V_STATIC1_IFACE;CUSTOM_V_IFACE1"
|
||||||
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>" "CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE"
|
"$<TARGET_PROPERTY:CustomTransitiveProperties,CUSTOM_W>" "CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE"
|
||||||
|
COMMAND check-args
|
||||||
|
"$<TARGET_PROPERTY:iface1,LINK_LIBRARIES>" ""
|
||||||
|
"$<TARGET_PROPERTY:iface1,INTERFACE_LINK_LIBRARIES>" ""
|
||||||
|
"$<TARGET_PROPERTY:iface2,LINK_LIBRARIES>" ""
|
||||||
|
"$<TARGET_PROPERTY:iface2,INTERFACE_LINK_LIBRARIES>" "iface1"
|
||||||
|
"$<TARGET_PROPERTY:static1,LINK_LIBRARIES>" "iface2"
|
||||||
|
"$<TARGET_PROPERTY:static1,INTERFACE_LINK_LIBRARIES>" "$<LINK_ONLY:iface2$<ANGLE-R>"
|
||||||
|
"$<TARGET_PROPERTY:CustomTransitiveProperties,LINK_LIBRARIES>" "static1;object1"
|
||||||
|
"$<TARGET_PROPERTY:CustomTransitiveProperties,INTERFACE_LINK_LIBRARIES>" ""
|
||||||
)
|
)
|
||||||
|
@@ -32,6 +32,15 @@ main CUSTOM_V: 'CUSTOM_V_MAIN;CUSTOM_V_STATIC1_IFACE;CUSTOM_V_IFACE1'
|
|||||||
main INTERFACE_CUSTOM_V: ''
|
main INTERFACE_CUSTOM_V: ''
|
||||||
main CUSTOM_W: 'CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE'
|
main CUSTOM_W: 'CUSTOM_W_MAIN;CUSTOM_W_IFACE1;CUSTOM_W_OBJECT1_IFACE'
|
||||||
main INTERFACE_CUSTOM_W: ''
|
main INTERFACE_CUSTOM_W: ''
|
||||||
|
|
||||||
|
iface1 LINK_LIBRARIES: ''
|
||||||
|
iface1 INTERFACE_LINK_LIBRARIES: ''
|
||||||
|
iface2 LINK_LIBRARIES: ''
|
||||||
|
iface2 INTERFACE_LINK_LIBRARIES: 'iface1'
|
||||||
|
static1 LINK_LIBRARIES: 'iface2'
|
||||||
|
static1 INTERFACE_LINK_LIBRARIES: '\$<LINK_ONLY:iface2>'
|
||||||
|
main LINK_LIBRARIES: 'static1;object1'
|
||||||
|
main INTERFACE_LINK_LIBRARIES: ''
|
||||||
]])
|
]])
|
||||||
string(REGEX REPLACE "\r\n" "\n" expect "${expect}")
|
string(REGEX REPLACE "\r\n" "\n" expect "${expect}")
|
||||||
string(REGEX REPLACE "\n+$" "" expect "${expect}")
|
string(REGEX REPLACE "\n+$" "" expect "${expect}")
|
||||||
|
Reference in New Issue
Block a user