summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeTargetDepends.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-01-04 12:31:01 (GMT)
committerBrad King <brad.king@kitware.com>2013-01-08 13:53:25 (GMT)
commit40cf3fb95bc391519c0db4be1dc03c49e040579f (patch)
tree5fde04aaf1737fcf0f60e709d5b01e2002608fa3 /Source/cmComputeTargetDepends.cxx
parent894f52f32d96ae92df0ba3dac2a70fe9c87e818d (diff)
downloadCMake-40cf3fb95bc391519c0db4be1dc03c49e040579f.zip
CMake-40cf3fb95bc391519c0db4be1dc03c49e040579f.tar.gz
CMake-40cf3fb95bc391519c0db4be1dc03c49e040579f.tar.bz2
Make linking APIs aware of 'head' target
The 'head' is the dependent target to be linked with the current target. It will be used to evaluate generator expressions with proper handling of mapped configurations and is used as the source target of properties. This requires that memoization is done with a key of a pair of target and config, instead of just config, because now the result also depends on the target. Removing the memoization entirely is not an option because it slows cmake down considerably.
Diffstat (limited to 'Source/cmComputeTargetDepends.cxx')
-rw-r--r--Source/cmComputeTargetDepends.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx
index 3b15ec1..c3a75e4 100644
--- a/Source/cmComputeTargetDepends.cxx
+++ b/Source/cmComputeTargetDepends.cxx
@@ -244,8 +244,9 @@ void cmComputeTargetDepends::AddInterfaceDepends(int depender_index,
const char *config,
std::set<cmStdString> &emitted)
{
+ cmTarget* depender = this->Targets[depender_index];
if(cmTarget::LinkInterface const* iface =
- dependee->GetLinkInterface(config))
+ dependee->GetLinkInterface(config, depender))
{
for(std::vector<std::string>::const_iterator
lib = iface->Libraries.begin();