summaryrefslogtreecommitdiffstats
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
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.
-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;