Commit 030800a7 authored by Stephen Kelly's avatar Stephen Kelly
Browse files

cmTarget: Add a template to create correct implied content.

Otherwise, in the string case, we would get a null pointer instead
of the implied empty string. That will become relevant when the
comparison result is used.
parent e48faced
...@@ -4472,6 +4472,19 @@ bool consistentProperty(const char *lhs, const char *rhs) ...@@ -4472,6 +4472,19 @@ bool consistentProperty(const char *lhs, const char *rhs)
return strcmp(lhs, rhs) == 0; return strcmp(lhs, rhs) == 0;
} }
template<typename PropertyType>
PropertyType impliedValue(PropertyType);
template<>
bool impliedValue<bool>(bool)
{
return false;
}
template<>
const char* impliedValue<const char*>(const char*)
{
return "";
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
template<typename PropertyType> template<typename PropertyType>
PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt, PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt,
...@@ -4547,6 +4560,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt, ...@@ -4547,6 +4560,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget *tgt,
} }
else if (impliedByUse) else if (impliedByUse)
{ {
propContent = impliedValue<PropertyType>(propContent);
if (ifaceIsSet) if (ifaceIsSet)
{ {
if (!consistentProperty(propContent, ifacePropContent)) if (!consistentProperty(propContent, ifacePropContent))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment