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