Split link information processing into two steps.

The first step can be ported to use the generator expression API,
while the second can not. This is for compatibility with CMP0003.
This commit is contained in:
Stephen Kelly 2012-11-01 10:16:56 +01:00
parent d8a59ea4b3
commit d5cf644ac2
1 changed files with 12 additions and 2 deletions

View File

@ -4707,14 +4707,24 @@ void cmTarget::ComputeLinkImplementation(const char* config,
{ {
continue; continue;
} }
if(li->second == cmTarget::GENERAL || li->second == linkType) if(li->second == cmTarget::GENERAL || li->second == linkType)
{ {
// The entry is meant for this configuration. // The entry is meant for this configuration.
impl.Libraries.push_back(item); impl.Libraries.push_back(item);
} }
else }
LinkLibraryVectorType const& oldllibs = this->GetOriginalLinkLibraries();
for(cmTarget::LinkLibraryVectorType::const_iterator li = oldllibs.begin();
li != oldllibs.end(); ++li)
{ {
if(li->second != cmTarget::GENERAL && li->second != linkType)
{
std::string item = this->CheckCMP0004(li->first);
if(item == this->GetName() || item.empty())
{
continue;
}
// Support OLD behavior for CMP0003. // Support OLD behavior for CMP0003.
impl.WrongConfigLibraries.push_back(item); impl.WrongConfigLibraries.push_back(item);
} }