This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  bcc2698674653f497dc99c5005882ea1674a085b (commit)
       via  b581be07672e08cce4c29fa279b250d8e9c7aaba (commit)
       via  07749e3705cfc0105399c4a7a8349ec9f83ba39c (commit)
      from  3e40be7854187a1d81deaf4723ef3d6c8fa8d210 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bcc2698674653f497dc99c5005882ea1674a085b
commit bcc2698674653f497dc99c5005882ea1674a085b
Merge: 3e40be7 b581be0
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Nov 27 09:13:11 2012 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Tue Nov 27 09:13:11 2012 -0500

    Merge topic 'generator-expression-fixes' into next
    
    b581be0 Genex: Don't segfault on $<FOO,>
    07749e3 Genex: Ensure that $<0:...> has a parameter.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b581be07672e08cce4c29fa279b250d8e9c7aaba
commit b581be07672e08cce4c29fa279b250d8e9c7aaba
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Mon Nov 26 22:44:13 2012 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Tue Nov 27 09:12:39 2012 -0500

    Genex: Don't segfault on $<FOO,>
    
    Treat the comma as part of the identifier here. It will later not
    resolve to a generator expression and the user gets a proper error
    message.

diff --git a/Source/cmGeneratorExpressionParser.cxx 
b/Source/cmGeneratorExpressionParser.cxx
index 7a8fc51..a619cec 100644
--- a/Source/cmGeneratorExpressionParser.cxx
+++ b/Source/cmGeneratorExpressionParser.cxx
@@ -88,7 +88,15 @@ void cmGeneratorExpressionParser::ParseGeneratorExpression(
   while(this->it->TokenType != cmGeneratorExpressionToken::EndExpression
       && this->it->TokenType != cmGeneratorExpressionToken::ColonSeparator)
     {
-    this->ParseContent(identifier);
+    if (this->it->TokenType == cmGeneratorExpressionToken::CommaSeparator)
+      {
+      extendText(identifier, this->it);
+      ++this->it;
+      }
+    else
+      {
+      this->ParseContent(identifier);
+      }
     if (this->it == this->Tokens.end())
       {
       break;
diff --git a/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt 
b/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt
index ce04482..40db4ae 100644
--- a/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt
+++ b/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt
@@ -6,3 +6,12 @@ CMake Error at BadZero.cmake:2 \(add_custom_target\):
   \$<0> expression requires a parameter.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
++
+CMake Error at BadZero.cmake:2 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<0,>
+
+  Expression did not evaluate to a known generator expression
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
diff --git a/Tests/RunCMake/GeneratorExpression/BadZero.cmake 
b/Tests/RunCMake/GeneratorExpression/BadZero.cmake
index 295ab0e..559a9fa 100644
--- a/Tests/RunCMake/GeneratorExpression/BadZero.cmake
+++ b/Tests/RunCMake/GeneratorExpression/BadZero.cmake
@@ -1,4 +1,5 @@
 
 add_custom_target(check ALL COMMAND check
   $<0>
+  $<0,>
   VERBATIM)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=07749e3705cfc0105399c4a7a8349ec9f83ba39c
commit 07749e3705cfc0105399c4a7a8349ec9f83ba39c
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Mon Nov 26 22:43:13 2012 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Tue Nov 27 09:12:39 2012 -0500

    Genex: Ensure that $<0:...> has a parameter.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx 
b/Source/cmGeneratorExpressionEvaluator.cxx
index 23f641d..3c2f7c5 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -66,6 +66,8 @@ static const struct ZeroNode : public 
cmGeneratorExpressionNode
 
   virtual bool GeneratesContent() const { return false; }
 
+  virtual bool AcceptsSingleArbitraryContentParameter() const { return true; }
+
   std::string Evaluate(const std::vector<std::string> &,
                        cmGeneratorExpressionContext *,
                        const GeneratorExpressionContent *,
@@ -642,6 +644,20 @@ std::string GeneratorExpressionContent::Evaluate(
 
   if (!node->GeneratesContent())
     {
+    if (node->AcceptsSingleArbitraryContentParameter())
+      {
+      if (this->ParamChildren.empty())
+        {
+        reportError(context, this->GetOriginalExpression(),
+                  "$<" + identifier + "> expression requires a parameter.");
+        }
+      }
+    else
+      {
+      std::vector<std::string> parameters;
+      this->EvaluateParameters(node, identifier, context, dagChecker,
+                               parameters);
+      }
     return std::string();
     }
 
diff --git a/Tests/RunCMake/GeneratorExpression/BadZero-result.txt 
b/Tests/RunCMake/GeneratorExpression/BadZero-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadZero-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt 
b/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt
new file mode 100644
index 0000000..ce04482
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadZero-stderr.txt
@@ -0,0 +1,8 @@
+CMake Error at BadZero.cmake:2 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<0>
+
+  \$<0> expression requires a parameter.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
diff --git a/Tests/RunCMake/GeneratorExpression/BadZero.cmake 
b/Tests/RunCMake/GeneratorExpression/BadZero.cmake
new file mode 100644
index 0000000..295ab0e
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadZero.cmake
@@ -0,0 +1,4 @@
+
+add_custom_target(check ALL COMMAND check
+  $<0>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake 
b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
index 18a47ae..992ba79 100644
--- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -5,3 +5,4 @@ run_cmake(BadOR)
 run_cmake(BadAND)
 run_cmake(BadNOT)
 run_cmake(BadStrEqual)
+run_cmake(BadZero)

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to