Export: Port more API to cmGeneratorTarget.
This commit is contained in:
parent
244c5b5dcd
commit
c971338416
|
@ -27,6 +27,7 @@ cmExportBuildFileGenerator::cmExportBuildFileGenerator()
|
|||
//----------------------------------------------------------------------------
|
||||
bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
|
||||
{
|
||||
std::vector<cmGeneratorTarget*> allTargets;
|
||||
{
|
||||
std::string expectedTargets;
|
||||
std::string sep;
|
||||
|
@ -68,7 +69,8 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
tei = this->Exports.begin();
|
||||
tei != this->Exports.end(); ++tei)
|
||||
{
|
||||
cmTarget* te = (*tei)->Target;
|
||||
cmGeneratorTarget* gte = *tei;
|
||||
cmTarget* te = gte->Target;
|
||||
this->GenerateImportTargetCode(os, te);
|
||||
|
||||
te->AppendBuildInterfaceIncludes();
|
||||
|
@ -104,7 +106,7 @@ bool cmExportBuildFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
cmGeneratorExpression::BuildInterface,
|
||||
properties, missingTargets);
|
||||
}
|
||||
this->PopulateCompatibleInterfaceProperties(te, properties);
|
||||
this->PopulateCompatibleInterfaceProperties(gte, properties);
|
||||
|
||||
this->GenerateInterfaceProperties(te, os, properties);
|
||||
}
|
||||
|
|
|
@ -525,15 +525,15 @@ void getPropertyContents(cmTarget const* tgt, const std::string& prop,
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void getCompatibleInterfaceProperties(cmTarget *target,
|
||||
void getCompatibleInterfaceProperties(cmGeneratorTarget *target,
|
||||
std::set<std::string> &ifaceProperties,
|
||||
const std::string& config)
|
||||
{
|
||||
cmComputeLinkInformation *info = target->GetLinkInformation(config);
|
||||
cmComputeLinkInformation *info = target->Target->GetLinkInformation(config);
|
||||
|
||||
if (!info)
|
||||
{
|
||||
cmMakefile* mf = target->GetMakefile();
|
||||
cmMakefile* mf = target->Target->GetMakefile();
|
||||
std::ostringstream e;
|
||||
e << "Exporting the target \"" << target->GetName() << "\" is not "
|
||||
"allowed since its linker language cannot be determined";
|
||||
|
@ -568,9 +568,10 @@ void getCompatibleInterfaceProperties(cmTarget *target,
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
|
||||
cmTarget *target,
|
||||
cmGeneratorTarget *gtarget,
|
||||
ImportPropertyMap &properties)
|
||||
{
|
||||
cmTarget *target = gtarget->Target;
|
||||
this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_BOOL",
|
||||
target, properties);
|
||||
this->PopulateInterfaceProperty("COMPATIBLE_INTERFACE_STRING",
|
||||
|
@ -591,7 +592,7 @@ void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
|
|||
|
||||
if (target->GetType() != cmTarget::INTERFACE_LIBRARY)
|
||||
{
|
||||
getCompatibleInterfaceProperties(target, ifaceProperties, "");
|
||||
getCompatibleInterfaceProperties(gtarget, ifaceProperties, "");
|
||||
|
||||
std::vector<std::string> configNames;
|
||||
target->GetMakefile()->GetConfigurations(configNames);
|
||||
|
@ -599,7 +600,7 @@ void cmExportFileGenerator::PopulateCompatibleInterfaceProperties(
|
|||
for (std::vector<std::string>::const_iterator ci = configNames.begin();
|
||||
ci != configNames.end(); ++ci)
|
||||
{
|
||||
getCompatibleInterfaceProperties(target, ifaceProperties, *ci);
|
||||
getCompatibleInterfaceProperties(gtarget, ifaceProperties, *ci);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ protected:
|
|||
std::vector<std::string> &missingTargets);
|
||||
void PopulateInterfaceProperty(const std::string& propName, cmTarget *target,
|
||||
ImportPropertyMap &properties);
|
||||
void PopulateCompatibleInterfaceProperties(cmTarget *target,
|
||||
void PopulateCompatibleInterfaceProperties(cmGeneratorTarget *target,
|
||||
ImportPropertyMap &properties);
|
||||
void GenerateInterfaceProperties(cmTarget const* target, std::ostream& os,
|
||||
const ImportPropertyMap &properties);
|
||||
|
|
|
@ -193,7 +193,11 @@ bool cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
|
|||
|
||||
this->PopulateInterfaceProperty("INTERFACE_POSITION_INDEPENDENT_CODE",
|
||||
te, properties);
|
||||
this->PopulateCompatibleInterfaceProperties(te, properties);
|
||||
cmGeneratorTarget *gtgt = te->GetMakefile()
|
||||
->GetGlobalGenerator()
|
||||
->GetGeneratorTarget(te);
|
||||
|
||||
this->PopulateCompatibleInterfaceProperties(gtgt, properties);
|
||||
|
||||
this->GenerateInterfaceProperties(te, os, properties);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue