summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionEvaluator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-08-06 13:51:08 (GMT)
committerBrad King <brad.king@kitware.com>2014-08-06 14:13:04 (GMT)
commit3f476beaf7ffc20a27d97fbf04f6699791996f7f (patch)
tree33f348af0065d1c7b9ae6d8d0d3903a28ac9709f /Source/cmGeneratorExpressionEvaluator.cxx
parentebd8fa2256c9293b3887f6aeecc9aa7ee718137d (diff)
downloadCMake-3f476beaf7ffc20a27d97fbf04f6699791996f7f.zip
CMake-3f476beaf7ffc20a27d97fbf04f6699791996f7f.tar.gz
CMake-3f476beaf7ffc20a27d97fbf04f6699791996f7f.tar.bz2
Genex: Do not consider 'head' when evaluating build properties
When $<TARGET_PROPERTY> names a build property like COMPILE_DEFINITIONS but not the usage requirement (INTERFACE_) version of it, the value should be that used to build the target. It should not be influenced by a dependent 'head' target like usage requirements are. Extend the CompileDefinitions test with a case covering the corrected behavior. Reviewed-by: Stephen Kelly <steveire@gmail.com>
Diffstat (limited to 'Source/cmGeneratorExpressionEvaluator.cxx')
-rw-r--r--Source/cmGeneratorExpressionEvaluator.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 35a9fcb..1c9cfac 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -1081,7 +1081,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
}
}
#undef POPULATE_INTERFACE_PROPERTY_NAME
- cmTarget const* headTarget = context->HeadTarget
+ cmTarget const* headTarget = context->HeadTarget && isInterfaceProperty
? context->HeadTarget : target;
if(isInterfaceProperty)
@@ -1103,7 +1103,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
{
linkedTargetsContent =
getLinkedTargetsContent(impl->Libraries, target,
- headTarget,
+ target,
context, &dagChecker,
interfacePropertyName);
}