summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-11-01 09:16:56 (GMT)
committerStephen Kelly <steveire@gmail.com>2012-11-21 14:49:36 (GMT)
commitd5cf644ac2e3f035d2d3413dd98aa0d46f9f27eb (patch)
treebd0b8ca4133a5c4900e3e3a0db42b6e483ea2654 /Source
parentd8a59ea4b370eaf4a5b6162631af9e272fdb24b4 (diff)
downloadCMake-d5cf644ac2e3f035d2d3413dd98aa0d46f9f27eb.zip
CMake-d5cf644ac2e3f035d2d3413dd98aa0d46f9f27eb.tar.gz
CMake-d5cf644ac2e3f035d2d3413dd98aa0d46f9f27eb.tar.bz2
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.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmTarget.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 7c62ea8..214b099 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -4707,14 +4707,24 @@ void cmTarget::ComputeLinkImplementation(const char* config,
{
continue;
}
-
if(li->second == cmTarget::GENERAL || li->second == linkType)
{
// The entry is meant for this configuration.
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.
impl.WrongConfigLibraries.push_back(item);
}