Handle colons as a special case in the generator expression parser.

Like the special case for commas, this ensures that the colon only has
special meaning as the delimiter between the identifier and the
parameters of a particular expression, but constructs such as

 INCLUDE_DIRECTORIES "$<1:C:\foo>"

are legal.
This commit is contained in:
Stephen Kelly 2012-09-21 11:31:03 +02:00
parent fb578c8635
commit f20af79956
1 changed files with 5 additions and 0 deletions

View File

@ -127,6 +127,11 @@ void cmGeneratorExpressionParser::ParseGeneratorExpression(
parameters.resize(parameters.size() + 1); parameters.resize(parameters.size() + 1);
++this->it; ++this->it;
} }
if (this->it->TokenType == cmGeneratorExpressionToken::ColonSeparator)
{
extendText(*(parameters.end() - 1), this->it);
++this->it;
}
if (this->it == this->Tokens.end()) if (this->it == this->Tokens.end())
{ {
break; break;