f500a784d0
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.
40 lines
1.2 KiB
CMake
40 lines
1.2 KiB
CMake
include(RunCMake)
|
|
|
|
run_cmake(BadCONFIG)
|
|
run_cmake(BadOR)
|
|
run_cmake(BadAND)
|
|
run_cmake(BadNOT)
|
|
run_cmake(BadStrEqual)
|
|
run_cmake(BadZero)
|
|
run_cmake(BadTargetName)
|
|
run_cmake(BadTargetTypeInterface)
|
|
run_cmake(BadTargetTypeObject)
|
|
run_cmake(BadInstallPrefix)
|
|
run_cmake(BadSHELL_PATH)
|
|
run_cmake(CMP0044-WARN)
|
|
run_cmake(NonValidTarget-C_COMPILER_ID)
|
|
run_cmake(NonValidTarget-CXX_COMPILER_ID)
|
|
run_cmake(NonValidTarget-C_COMPILER_VERSION)
|
|
run_cmake(NonValidTarget-CXX_COMPILER_VERSION)
|
|
run_cmake(NonValidTarget-TARGET_PROPERTY)
|
|
run_cmake(NonValidTarget-TARGET_POLICY)
|
|
run_cmake(COMPILE_LANGUAGE-add_custom_target)
|
|
run_cmake(COMPILE_LANGUAGE-add_custom_command)
|
|
run_cmake(COMPILE_LANGUAGE-install)
|
|
run_cmake(COMPILE_LANGUAGE-target_sources)
|
|
run_cmake(COMPILE_LANGUAGE-add_executable)
|
|
run_cmake(COMPILE_LANGUAGE-add_library)
|
|
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)
|
|
run_cmake(NonValidTarget-TARGET_PDB_FILE)
|
|
run_cmake(ValidTarget-TARGET_PDB_FILE)
|
|
else()
|
|
run_cmake(NonValidCompiler-TARGET_PDB_FILE)
|
|
endif()
|