From 0ad2a1c18148b995a6a13be32ce93a625332defd Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Tue, 24 Sep 2013 15:06:56 +0200 Subject: [PATCH] Export: Never treat private link libraries as public package dependencies. Multiple libraries in a single buildsystem can be exported to multiple export-sets. If a library from one export set depends on a library from another export set, the export logic generates a check in the targets file to verify that the target in the other export set is found. That check is executed at downstream-find_package-time. However, a target may depend privately on a target in another export set. In that case, the depend used to also be listed in the required targets in the targets file. Change the export logic to ignore the private link entries instead. --- Source/cmExportFileGenerator.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index ef336ea47..0a9353386 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -736,9 +736,10 @@ cmExportFileGenerator "IMPORTED_LINK_INTERFACE_LANGUAGES", iface->Languages, properties, missingTargets); + std::vector dummy; this->SetImportLinkProperty(suffix, target, "IMPORTED_LINK_DEPENDENT_LIBRARIES", - iface->SharedDeps, properties, missingTargets); + iface->SharedDeps, properties, dummy); if(iface->Multiplicity > 0) { std::string prop = "IMPORTED_LINK_INTERFACE_MULTIPLICITY";