瀏覽代碼

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.
Stephen Kelly 13 年之前
父節點
當前提交
f20af79956
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      Source/cmGeneratorExpressionParser.cxx

+ 5 - 0
Source/cmGeneratorExpressionParser.cxx

@@ -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;