summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionParser.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-09-21 09:31:03 (GMT)
committerStephen Kelly <steveire@gmail.com>2012-09-21 09:33:46 (GMT)
commitf20af79956bff9ddd0bf428a2731b9c817de93a1 (patch)
tree265734f8e24e2d16c3d043b96ee18552d4573365 /Source/cmGeneratorExpressionParser.cxx
parentfb578c8635b3c09f4a838c2ec9c671d9f1be34cd (diff)
downloadCMake-f20af79956bff9ddd0bf428a2731b9c817de93a1.zip
CMake-f20af79956bff9ddd0bf428a2731b9c817de93a1.tar.gz
CMake-f20af79956bff9ddd0bf428a2731b9c817de93a1.tar.bz2
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.
Diffstat (limited to 'Source/cmGeneratorExpressionParser.cxx')
-rw-r--r--Source/cmGeneratorExpressionParser.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/cmGeneratorExpressionParser.cxx b/Source/cmGeneratorExpressionParser.cxx
index 2a5cc7a..d3c4aa3 100644
--- a/Source/cmGeneratorExpressionParser.cxx
+++ b/Source/cmGeneratorExpressionParser.cxx
@@ -127,6 +127,11 @@ void cmGeneratorExpressionParser::ParseGeneratorExpression(
parameters.resize(parameters.size() + 1);
++this->it;
}
+ if (this->it->TokenType == cmGeneratorExpressionToken::ColonSeparator)
+ {
+ extendText(*(parameters.end() - 1), this->it);
+ ++this->it;
+ }
if (this->it == this->Tokens.end())
{
break;