Files
cmake/Tests/RunCMake/GenEx-SOURCE_PROPERTY/Subdir.cmake
T
Marc Chevrier e2a38a3990 GenEx SOURCE_PROPERTY
This feature is required for the support of the future feature of
pattern rules (see #27383).

But it is also a valuable addition in the context of custom command and target.
2026-01-21 16:03:30 +01:00

39 lines
1.4 KiB
CMake

enable_language(C)
set (GENERATE_CONTENT [[
macro (CHECK_VALUE test_msg value expected)
if (NOT "${value}" STREQUAL "${expected}")
string (APPEND RunCMake_TEST_FAILED "${test_msg}: actual result:\n [${value}]\nbut expected:\n [${expected}]\n")
endif()
endmacro()
]])
set_property(SOURCE foo.c PROPERTY FOO ROOT)
add_subdirectory(subdir)
get_property(reference SOURCE foo.c DIRECTORY "subdir" PROPERTY FOO)
string (APPEND GENERATE_CONTENT
"check_value (\"<SOURCE_PROPERTY:foo.c,DIRECTORY:subdir,FOO>\" \"$<SOURCE_PROPERTY:foo.c,DIRECTORY:subdir,FOO>\" \"${reference}\")\n")
get_property(reference SOURCE foo.c DIRECTORY "subdir" PROPERTY VOID)
string (APPEND GENERATE_CONTENT
"check_value (\"<SOURCE_PROPERTY:foo.c,DIRECTORY:subdir,VOID>\" \"$<SOURCE_PROPERTY:foo.c,DIRECTORY:subdir,VOID>\" \"${reference}\")\n")
get_property(reference SOURCE foo.c TARGET_DIRECTORY foo PROPERTY FOO)
string (APPEND GENERATE_CONTENT
"check_value (\"<SOURCE_PROPERTY:foo.c,TARGET_DIRECTORY:foo,FOO>\" \"$<SOURCE_PROPERTY:foo.c,TARGET_DIRECTORY:foo,FOO>\" \"${reference}\")\n")
get_property(reference SOURCE foo.c TARGET_DIRECTORY foo PROPERTY VOID)
string (APPEND GENERATE_CONTENT
"check_value (\"<SOURCE_PROPERTY:foo.c,TARGET_DIRECTORY:foo,VOID>\" \"$<SOURCE_PROPERTY:foo.c,TARGET_DIRECTORY:foo,VOID>\" \"${reference}\")\n")
file (GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Subdir-generated.cmake"
CONTENT "${GENERATE_CONTENT}")