cmGeneratorTarget: Move GetObjectLibrariesCMP0026 from cmTarget.
This commit is contained in:
parent
82a6eaf4d0
commit
60bd9f9c92
|
@ -5200,6 +5200,46 @@ bool cmGeneratorTarget::GetConfigCommonSourceFiles(
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
void cmGeneratorTarget::GetObjectLibrariesCMP0026(
|
||||||
|
std::vector<cmGeneratorTarget*>& objlibs) const
|
||||||
|
{
|
||||||
|
// At configure-time, this method can be called as part of getting the
|
||||||
|
// LOCATION property or to export() a file to be include()d. However
|
||||||
|
// there is no cmGeneratorTarget at configure-time, so search the SOURCES
|
||||||
|
// for TARGET_OBJECTS instead for backwards compatibility with OLD
|
||||||
|
// behavior of CMP0024 and CMP0026 only.
|
||||||
|
cmStringRange rng = this->Target->GetSourceEntries();
|
||||||
|
for(std::vector<std::string>::const_iterator
|
||||||
|
i = rng.begin(); i != rng.end(); ++i)
|
||||||
|
{
|
||||||
|
std::string const& entry = *i;
|
||||||
|
|
||||||
|
std::vector<std::string> files;
|
||||||
|
cmSystemTools::ExpandListArgument(entry, files);
|
||||||
|
for (std::vector<std::string>::const_iterator
|
||||||
|
li = files.begin(); li != files.end(); ++li)
|
||||||
|
{
|
||||||
|
if(cmHasLiteralPrefix(*li, "$<TARGET_OBJECTS:") &&
|
||||||
|
(*li)[li->size() - 1] == '>')
|
||||||
|
{
|
||||||
|
std::string objLibName = li->substr(17, li->size()-18);
|
||||||
|
|
||||||
|
if (cmGeneratorExpression::Find(objLibName) != std::string::npos)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
cmGeneratorTarget *objLib =
|
||||||
|
this->LocalGenerator->FindGeneratorTargetToUse(objLibName);
|
||||||
|
if(objLib)
|
||||||
|
{
|
||||||
|
objlibs.push_back(objLib);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
|
void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
|
||||||
const std::string& config) const
|
const std::string& config) const
|
||||||
|
@ -5220,14 +5260,13 @@ void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
|
||||||
std::vector<cmSourceFile const*> externalObjects;
|
std::vector<cmSourceFile const*> externalObjects;
|
||||||
if (!this->GlobalGenerator->GetConfigureDoneCMP0026())
|
if (!this->GlobalGenerator->GetConfigureDoneCMP0026())
|
||||||
{
|
{
|
||||||
std::vector<cmTarget*> objectTargets;
|
std::vector<cmGeneratorTarget*> objectTargets;
|
||||||
this->Target->GetObjectLibrariesCMP0026(objectTargets);
|
this->GetObjectLibrariesCMP0026(objectTargets);
|
||||||
objectLibraries.reserve(objectTargets.size());
|
objectLibraries.reserve(objectTargets.size());
|
||||||
for (std::vector<cmTarget*>::const_iterator it = objectTargets.begin();
|
for (std::vector<cmGeneratorTarget*>::const_iterator it =
|
||||||
it != objectTargets.end(); ++it)
|
objectTargets.begin(); it != objectTargets.end(); ++it)
|
||||||
{
|
{
|
||||||
objectLibraries.push_back(this->GlobalGenerator
|
objectLibraries.push_back(*it);
|
||||||
->GetGeneratorTarget(*it));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -226,6 +226,9 @@ public:
|
||||||
void GetLanguages(std::set<std::string>& languages,
|
void GetLanguages(std::set<std::string>& languages,
|
||||||
std::string const& config) const;
|
std::string const& config) const;
|
||||||
|
|
||||||
|
void
|
||||||
|
GetObjectLibrariesCMP0026(std::vector<cmGeneratorTarget*>& objlibs) const;
|
||||||
|
|
||||||
bool GetConfigCommonSourceFiles(std::vector<cmSourceFile*>& files) const;
|
bool GetConfigCommonSourceFiles(std::vector<cmSourceFile*>& files) const;
|
||||||
|
|
||||||
bool HaveBuildTreeRPATH(const std::string& config) const;
|
bool HaveBuildTreeRPATH(const std::string& config) const;
|
||||||
|
|
|
@ -2203,45 +2203,6 @@ const char* cmTarget::GetExportMacro() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
void
|
|
||||||
cmTarget::GetObjectLibrariesCMP0026(std::vector<cmTarget*>& objlibs) const
|
|
||||||
{
|
|
||||||
// At configure-time, this method can be called as part of getting the
|
|
||||||
// LOCATION property or to export() a file to be include()d. However
|
|
||||||
// there is no cmGeneratorTarget at configure-time, so search the SOURCES
|
|
||||||
// for TARGET_OBJECTS instead for backwards compatibility with OLD
|
|
||||||
// behavior of CMP0024 and CMP0026 only.
|
|
||||||
for(std::vector<std::string>::const_iterator
|
|
||||||
i = this->Internal->SourceEntries.begin();
|
|
||||||
i != this->Internal->SourceEntries.end(); ++i)
|
|
||||||
{
|
|
||||||
std::string const& entry = *i;
|
|
||||||
|
|
||||||
std::vector<std::string> files;
|
|
||||||
cmSystemTools::ExpandListArgument(entry, files);
|
|
||||||
for (std::vector<std::string>::const_iterator
|
|
||||||
li = files.begin(); li != files.end(); ++li)
|
|
||||||
{
|
|
||||||
if(cmHasLiteralPrefix(*li, "$<TARGET_OBJECTS:") &&
|
|
||||||
(*li)[li->size() - 1] == '>')
|
|
||||||
{
|
|
||||||
std::string objLibName = li->substr(17, li->size()-18);
|
|
||||||
|
|
||||||
if (cmGeneratorExpression::Find(objLibName) != std::string::npos)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
cmTarget *objLib = this->Makefile->FindTargetToUse(objLibName);
|
|
||||||
if(objLib)
|
|
||||||
{
|
|
||||||
objlibs.push_back(objLib);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
cmTarget::ImportInfo const*
|
cmTarget::ImportInfo const*
|
||||||
cmTarget::GetImportInfo(const std::string& config) const
|
cmTarget::GetImportInfo(const std::string& config) const
|
||||||
|
|
|
@ -213,8 +213,6 @@ public:
|
||||||
|
|
||||||
bool IsImported() const {return this->IsImportedTarget;}
|
bool IsImported() const {return this->IsImportedTarget;}
|
||||||
|
|
||||||
void GetObjectLibrariesCMP0026(std::vector<cmTarget*>& objlibs) const;
|
|
||||||
|
|
||||||
/** Strip off leading and trailing whitespace from an item named in
|
/** Strip off leading and trailing whitespace from an item named in
|
||||||
the link dependencies of this target. */
|
the link dependencies of this target. */
|
||||||
std::string CheckCMP0004(std::string const& item) const;
|
std::string CheckCMP0004(std::string const& item) const;
|
||||||
|
|
Loading…
Reference in New Issue