summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/get_property/source_properties.cmake
blob: 12d2d0797c0e225d9e6399262b05bd8391d263d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function (check_source_file_property file prop)
  get_source_file_property(gsfp_val "${file}" "${prop}")
  get_property(gp_val
    SOURCE "${file}"
    PROPERTY "${prop}")

  message("get_source_file_property: -->${gsfp_val}<--")
  message("get_property: -->${gp_val}<--")
endfunction ()

set_source_files_properties(file.c PROPERTIES empty "" custom value)

check_source_file_property(file.c empty)
check_source_file_property(file.c custom)
check_source_file_property(file.c noexist)

# Test strange legacy behavior in which the order in which source files are
# first accessed affects how properties are applied without an extension.
# See also issue #15208.
get_property(lang SOURCE ${CMAKE_CURRENT_BINARY_DIR}/file2.c PROPERTY LANGUAGE)
get_property(lang SOURCE ${CMAKE_CURRENT_BINARY_DIR}/file2.h PROPERTY LANGUAGE)
set_property(SOURCE file2 PROPERTY custom value) # set property without extension
check_source_file_property(file2 custom)   # should have property
check_source_file_property(file2.h custom) # should not have property
check_source_file_property(file2.c custom) # should have property