summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-06-02 14:57:10 (GMT)
committerBrad King <brad.king@kitware.com>2016-06-02 14:58:38 (GMT)
commitf500a784d008566d6eb6301b7c6a0f07847b856d (patch)
tree6d8fbe3bbad0ea13517ef0a029e373486523fb53 /Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
parent9d81f1b3aaa82d12a3a87067572b3ff5e2b9c4d2 (diff)
downloadCMake-f500a784d008566d6eb6301b7c6a0f07847b856d.zip
CMake-f500a784d008566d6eb6301b7c6a0f07847b856d.tar.gz
CMake-f500a784d008566d6eb6301b7c6a0f07847b856d.tar.bz2
Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134)
Policy CMP0026 deprecated the LOCATION property, and we have long provided a $<TARGET_FILE:...> generator expression. However, if a project tries to use $<TARGET_PROPERTY:...,LOCATION> we should at least not crash. The compatibility implementation of the LOCATION property uses cmGlobalGenerator::CreateGenerationObjects to create the structures needed to evaluate the property before generation starts. The implementation assumed that accessing the property could only be done during configuration (via the typical get_property command use case). The $<TARGET_PROPERTY:...,LOCATION> genex causes the LOCATION property to be accessed during generation. Calling CreateGenerationObjects during generation blows away all the objects currently being used for generation and is not safe. Add a condition to call it only when configuration is not finished.
Diffstat (limited to 'Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake')
-rw-r--r--Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake1
1 files changed, 1 insertions, 0 deletions
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
index 45175d8..625bab2 100644
--- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -28,6 +28,7 @@ run_cmake(COMPILE_LANGUAGE-add_test)
run_cmake(COMPILE_LANGUAGE-unknown-lang)
run_cmake(TARGET_FILE-recursion)
run_cmake(OUTPUT_NAME-recursion)
+run_cmake(TARGET_PROPERTY-LOCATION)
run_cmake(ImportedTarget-TARGET_PDB_FILE)
if(LINKER_SUPPORTS_PDB)