diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index d1d81fd39f..623bc41942 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3707,7 +3707,8 @@ bool cmTarget::GetMappedConfigNew(std::string desiredConfig, cmValue& loc, } // Get imported configurations, if specified. - if (cmValue iconfigs = this->GetProperty("IMPORTED_CONFIGURATIONS")) { + cmValue const iconfigs = this->GetProperty("IMPORTED_CONFIGURATIONS"); + if (!iconfigs.IsEmpty()) { cmList const availableConfigs{ cmSystemTools::UpperCase(*iconfigs) }; if (!mappedConfigs.empty()) { diff --git a/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-result.txt b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-result.txt new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-stderr.txt b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-stderr.txt new file mode 100644 index 0000000000..c5ac1d21f7 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS-stderr.txt @@ -0,0 +1,6 @@ +(CMake Error in CMakeLists.txt: + IMPORTED_LOCATION not set for imported target "imported"( configuration + "[A-Za-z]+")?\. + +)+ +CMake Generate step failed\. Build files cannot be regenerated correctly\. diff --git a/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS.cmake b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS.cmake new file mode 100644 index 0000000000..918a4b3214 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/Empty-IMPORTED_CONFIGURATIONS.cmake @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 4.4) +project(empty_imported_configuration NONE) + +add_library(imported UNKNOWN IMPORTED) +set_property(TARGET imported PROPERTY IMPORTED_CONFIGURATIONS "") + +file(GENERATE OUTPUT out.txt CONTENT "$") diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake index 5cc6790858..bc028259e0 100644 --- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake @@ -184,6 +184,8 @@ run_cmake_build(CMP0200-NEW) run_cmake_build(CMP0199-NEW+CMP0200-NEW) +run_cmake(Empty-IMPORTED_CONFIGURATIONS) + set(RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0085:STRING=OLD) run_cmake(CMP0085-OLD) unset(RunCMake_TEST_OPTIONS)