summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-09-25 12:32:29 (GMT)
committerBrad King <brad.king@kitware.com>2017-09-25 13:06:35 (GMT)
commita7005c985d2ed22f1192864a358eb89e2c1b63f7 (patch)
treee6058fed9c60af1294f1a5790b8f0f2341113ed5
parent1604716dfc493bf55bc1d87b5083bbe2ee709e60 (diff)
downloadCMake-a7005c985d2ed22f1192864a358eb89e2c1b63f7.zip
CMake-a7005c985d2ed22f1192864a358eb89e2c1b63f7.tar.gz
CMake-a7005c985d2ed22f1192864a358eb89e2c1b63f7.tar.bz2
Tests: Add case for legacy source file property behavior
The change in commit 3b95ab5693 (Performance: Improve efficiency of source file lookup in cmMakefile, 2017-08-17) broke some legacy behavior of source file properties in which the order sources are first resolved with extensions affects how setting properties without extensions works. It has been reverted for now, but the discovery was made after merging because the broken case was not covered by our test suite. Add a test case representing the legacy behavior. Issue: #15208
-rw-r--r--Tests/RunCMake/get_property/source_properties-stderr.txt8
-rw-r--r--Tests/RunCMake/get_property/source_properties.cmake10
2 files changed, 17 insertions, 1 deletions
diff --git a/Tests/RunCMake/get_property/source_properties-stderr.txt b/Tests/RunCMake/get_property/source_properties-stderr.txt
index 0a46f96..00a9b82 100644
--- a/Tests/RunCMake/get_property/source_properties-stderr.txt
+++ b/Tests/RunCMake/get_property/source_properties-stderr.txt
@@ -3,4 +3,10 @@ get_property: --><--
get_source_file_property: -->value<--
get_property: -->value<--
get_source_file_property: -->NOTFOUND<--
-get_property: --><--$
+get_property: --><--
+get_source_file_property: -->value<--
+get_property: -->value<--
+get_source_file_property: -->NOTFOUND<--
+get_property: --><--
+get_source_file_property: -->value<--
+get_property: -->value<--$
diff --git a/Tests/RunCMake/get_property/source_properties.cmake b/Tests/RunCMake/get_property/source_properties.cmake
index 263ffe1..12d2d07 100644
--- a/Tests/RunCMake/get_property/source_properties.cmake
+++ b/Tests/RunCMake/get_property/source_properties.cmake
@@ -13,3 +13,13 @@ 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