diff options
author | Michael Herwig <develop@michael-herwig.de> | 2024-05-31 16:15:55 (GMT) |
---|---|---|
committer | Michael Herwig <develop@michael-herwig.de> | 2024-09-10 11:24:24 (GMT) |
commit | 4a11772618decd7af2da96af41c1c595693fb17a (patch) | |
tree | 4a92e66bb0842d891ad499074faba044c1efdefa /Tests/GeneratorExpression | |
parent | 9673f61be1573b7e2b701da8a6ad0fb4c8cac4a1 (diff) | |
download | CMake-4a11772618decd7af2da96af41c1c595693fb17a.zip CMake-4a11772618decd7af2da96af41c1c595693fb17a.tar.gz CMake-4a11772618decd7af2da96af41c1c595693fb17a.tar.bz2 |
GenEx: Limit TARGET_PROPERTY transitive closure optimization to subgraphs
Fixes: #25728
Diffstat (limited to 'Tests/GeneratorExpression')
-rw-r--r-- | Tests/GeneratorExpression/CMakeLists.txt | 11 | ||||
-rw-r--r-- | Tests/GeneratorExpression/check-part2.cmake | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt index be750e1..b0064ae 100644 --- a/Tests/GeneratorExpression/CMakeLists.txt +++ b/Tests/GeneratorExpression/CMakeLists.txt @@ -112,6 +112,15 @@ target_link_libraries(empty3 LINK_PUBLIC empty2 empty4) add_library(empty5 empty.cpp) target_include_directories(empty5 PRIVATE /empty5/private1 /empty5/private2) +add_library(interface1 INTERFACE) +target_sources(interface1 INTERFACE foo.c bar.cpp) + +set(interface1Sources $<TARGET_PROPERTY:interface1,INTERFACE_SOURCES>) +set(interface1MergeSources $<LIST:APPEND,$<LIST:FILTER,${interface1Sources},INCLUDE,.*\\.c$>,$<LIST:FILTER,${interface1Sources},EXCLUDE,.*\\.c$>>) + +add_library(interface2 INTERFACE) +target_sources(interface2 INTERFACE ${interface1MergeSources}) + add_custom_target(check-part2 ALL COMMAND ${msys2_no_conv} ${CMAKE_COMMAND} -Dtest_incomplete_1=$< @@ -147,6 +156,8 @@ add_custom_target(check-part2 ALL -Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES> -Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES> -Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES> + -Dtest_target_closure1=$<JOIN:$<LIST:SORT,${interface1MergeSources}>,$<COMMA>> + -Dtest_target_closure2=$<JOIN:$<LIST:SORT,$<TARGET_PROPERTY:interface2,INTERFACE_SOURCES>>,$<COMMA>> -Dtest_arbitrary_content_comma_1=$<1:a,> -Dtest_arbitrary_content_comma_2=$<1:,a> -Dtest_arbitrary_content_comma_3=$<1:a,,> diff --git a/Tests/GeneratorExpression/check-part2.cmake b/Tests/GeneratorExpression/check-part2.cmake index a1db5f6..e9c5e5c 100644 --- a/Tests/GeneratorExpression/check-part2.cmake +++ b/Tests/GeneratorExpression/check-part2.cmake @@ -34,6 +34,8 @@ check(test_target_includes5 "/empty2/public;/empty3/public;/empty2/public;/empty check(test_target_includes6 "/empty3/public;/empty3/private;/empty2/public;/empty3/public;/empty4/public") check(test_target_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public") check(test_target_includes8 "/empty5/private1;/empty5/private2") +check(test_target_closure1 "bar.cpp,foo.c") +check(test_target_closure2 "bar.cpp,foo.c") check(test_arbitrary_content_comma_1 "a,") check(test_arbitrary_content_comma_2 ",a") check(test_arbitrary_content_comma_3 "a,,") |