Split LINK_INTERFACE_LIBRARIES export handling into dedicated method.
This commit is contained in:
parent
a3aedb8152
commit
94aeaf72c7
|
@ -107,6 +107,10 @@ cmExportBuildFileGenerator
|
|||
std::vector<std::string> missingTargets;
|
||||
this->SetImportDetailProperties(config, suffix,
|
||||
target, properties, missingTargets);
|
||||
this->SetImportLinkInterface(config, suffix,
|
||||
cmGeneratorExpression::BuildInterface,
|
||||
target, properties, missingTargets);
|
||||
|
||||
|
||||
// TOOD: PUBLIC_HEADER_LOCATION
|
||||
// This should wait until the build feature propagation stuff
|
||||
|
|
|
@ -344,6 +344,26 @@ cmExportFileGenerator::ResolveTargetsInGeneratorExpression(
|
|||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
cmExportFileGenerator
|
||||
::SetImportLinkInterface(const char* config, std::string const& suffix,
|
||||
cmGeneratorExpression::PreprocessContext preprocessRule,
|
||||
cmTarget* target, ImportPropertyMap& properties,
|
||||
std::vector<std::string>& missingTargets)
|
||||
{
|
||||
// Add the transitive link dependencies for this configuration.
|
||||
cmTarget::LinkInterface const* iface = target->GetLinkInterface(config,
|
||||
target);
|
||||
if (!iface)
|
||||
{
|
||||
return;
|
||||
}
|
||||
this->SetImportLinkProperty(suffix, target,
|
||||
"IMPORTED_LINK_INTERFACE_LIBRARIES",
|
||||
iface->Libraries, properties, missingTargets);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
cmExportFileGenerator
|
||||
|
@ -388,9 +408,7 @@ cmExportFileGenerator
|
|||
this->SetImportLinkProperty(suffix, target,
|
||||
"IMPORTED_LINK_INTERFACE_LANGUAGES",
|
||||
iface->Languages, properties, missingTargets);
|
||||
this->SetImportLinkProperty(suffix, target,
|
||||
"IMPORTED_LINK_INTERFACE_LIBRARIES",
|
||||
iface->Libraries, properties, missingTargets);
|
||||
|
||||
this->SetImportLinkProperty(suffix, target,
|
||||
"IMPORTED_LINK_DEPENDENT_LIBRARIES",
|
||||
iface->SharedDeps, properties, missingTargets);
|
||||
|
|
|
@ -102,6 +102,10 @@ protected:
|
|||
void GenerateInterfaceProperties(cmTarget *target, std::ostream& os,
|
||||
const ImportPropertyMap &properties);
|
||||
|
||||
void SetImportLinkInterface(const char* config, std::string const& suffix,
|
||||
cmGeneratorExpression::PreprocessContext preprocessRule,
|
||||
cmTarget* target, ImportPropertyMap& properties,
|
||||
std::vector<std::string>& missingTargets);
|
||||
|
||||
enum FreeTargetsReplace {
|
||||
ReplaceFreeTargets,
|
||||
|
|
|
@ -229,6 +229,10 @@ cmExportInstallFileGenerator
|
|||
this->SetImportDetailProperties(config, suffix,
|
||||
te->Target, properties, missingTargets);
|
||||
|
||||
this->SetImportLinkInterface(config, suffix,
|
||||
cmGeneratorExpression::InstallInterface,
|
||||
te->Target, properties, missingTargets);
|
||||
|
||||
// TOOD: PUBLIC_HEADER_LOCATION
|
||||
// This should wait until the build feature propagation stuff
|
||||
// is done. Then this can be a propagated include directory.
|
||||
|
|
Loading…
Reference in New Issue