diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index af97921906..9accd7ddc5 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -280,12 +280,14 @@ cmExportFileGenerator::ExportInfo cmExportInstallFileGenerator::FindExportInfo( [&name](std::unique_ptr const& te) { return te->TargetName == name; })) { - exportSets.insert(exp.first); std::vector const* installs = exportSet.GetInstallations(); - for (cmInstallExportGenerator const* install : *installs) { - exportFiles.push_back(install->GetDestinationFile()); - namespaces.insert(install->GetNamespace()); + if (!installs->empty()) { + exportSets.insert(exp.first); + for (cmInstallExportGenerator const* install : *installs) { + exportFiles.push_back(install->GetDestinationFile()); + namespaces.insert(install->GetNamespace()); + } } } } diff --git a/Tests/RunCMake/InstallPackageInfo/DependsMultipleNotInstalled.cmake b/Tests/RunCMake/InstallPackageInfo/DependsMultipleNotInstalled.cmake new file mode 100644 index 0000000000..7d6e06cc05 --- /dev/null +++ b/Tests/RunCMake/InstallPackageInfo/DependsMultipleNotInstalled.cmake @@ -0,0 +1,4 @@ +project(DependsMultipleNotInstalled CXX) +set(NAMESPACE foo::) +include(DependsMultipleCommon.cmake) +install(TARGETS foo EXPORT foo-alt) # set foo-alt never installed diff --git a/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake index ebd3e896e7..71910a8cfa 100644 --- a/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake +++ b/Tests/RunCMake/InstallPackageInfo/RunCMakeTest.cmake @@ -35,3 +35,4 @@ run_cmake(LowerCaseFile) run_cmake(Requirements) run_cmake(TargetTypes) run_cmake(DependsMultiple) +run_cmake(DependsMultipleNotInstalled)