[Cmake-commits] CMake branch, next, updated. v2.8.9-1005-g4c7150c

Stephen Kelly steveire at gmail.com
Thu Oct 4 05:23:51 EDT 2012


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  4c7150cba317edefcea490404b1cecd8f653bed1 (commit)
       via  05a22bcf5d6250a49252e02b4cf6d774017010f9 (commit)
       via  58d784f316a2fd0d77310d6c4d4be436ff027efe (commit)
       via  ede12adb29afa1b039c65b6eceb83c0e3b39772f (commit)
       via  e74a99751c30aa44a0c49b52b4835fa397833f0f (commit)
       via  ce3cf237d0b002a835a33117eae418b66998abcd (commit)
       via  61e32654babe6cfcc0f10db9bd5e58fc85978f48 (commit)
       via  14d649ed4acf4ec38a395482e0b7a36ead09623b (commit)
       via  deb656a1f37bc014a6e6f54a6c928624531d765e (commit)
       via  822a9a31c341fba59a34e8bd0a23b8dc9b794953 (commit)
      from  dd7e7979b4c7a28ecf13c5ef7e77fc756998be55 (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=4c7150cba317edefcea490404b1cecd8f653bed1
commit 4c7150cba317edefcea490404b1cecd8f653bed1
Merge: dd7e797 05a22bc
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 05:23:48 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Oct 4 05:23:48 2012 -0400

    Merge topic 'generator-expression-bug-fixes' into next
    
    05a22bc Don't use std::vector::at(int).
    58d784f Add tests for "0" and "1" expressions with literal commas.
    ede12ad Add test for $<BOOL:> with empty parameter.
    e74a997 Ensure that the empty CONFIGURATION can be used conditionally.
    ce3cf23 Validate target and property names.
    61e3265 Parse comma after colon tokens specially
    14d649e Report actual target name not found, not "0" each time.
    deb656a Return after error reported.
    822a9a3 It is not an error to specify an empty parameter


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=05a22bcf5d6250a49252e02b4cf6d774017010f9
commit 05a22bcf5d6250a49252e02b4cf6d774017010f9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 11:21:05 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 11:21:05 2012 +0200

    Don't use std::vector::at(int).
    
    It might not exist with GCC 2.9.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 6b96efd..2c18ab8 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -173,7 +173,7 @@ static const struct StrEqualNode : public cmGeneratorExpressionNode
                        const GeneratorExpressionContent *,
                        cmGeneratorExpressionDAGChecker *) const
   {
-    return *parameters.begin() == parameters.at(1) ? "1" : "0";
+    return *parameters.begin() == parameters[1] ? "1" : "0";
   }
 } strEqualNode;
 
@@ -281,7 +281,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
     std::string propertyName = *parameters.begin();
     if (parameters.size() == 2)
       {
-      if (parameters.begin()->empty() && parameters.at(1).empty())
+      if (parameters.begin()->empty() && parameters[1].empty())
         {
         reportError(context, content->GetOriginalExpression(),
             "$<TARGET_PROPERTY:tgt,prop> expression requires a non-empty "
@@ -297,7 +297,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
         }
 
       std::string targetName = parameters.front();
-      propertyName = parameters.at(1);
+      propertyName = parameters[1];
       if (!nameValidator.find(targetName.c_str()))
         {
         if (!nameValidator.find(propertyName.c_str()))

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58d784f316a2fd0d77310d6c4d4be436ff027efe
commit 58d784f316a2fd0d77310d6c4d4be436ff027efe
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 10:27:34 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 10:31:55 2012 +0200

    Add tests for "0" and "1" expressions with literal commas.

diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 41639ac..8bc4f32 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -4,7 +4,9 @@ project(GeneratorExpression NONE)
 add_custom_target(check ALL
   COMMAND ${CMAKE_COMMAND}
     -Dtest_0=$<0:nothing>
+    -Dtest_0_with_comma=$<0:-Wl,--no-undefined>
     -Dtest_1=$<1:content>
+    -Dtest_1_with_comma=$<1:-Wl,--no-undefined>
     -Dconfig=$<CONFIGURATION>
     -Dtest_and_0=$<AND:0>
     -Dtest_and_0_0=$<AND:0,0>
diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake
index fd1e2ab..ec1f130 100644
--- a/Tests/GeneratorExpression/check.cmake
+++ b/Tests/GeneratorExpression/check.cmake
@@ -6,7 +6,9 @@ endmacro()
 
 message(STATUS "config=[${config}]")
 check(test_0 "")
+check(test_0_with_comma "")
 check(test_1 "content")
+check(test_1_with_comma "-Wl,--no-undefined")
 check(test_and_0 "0")
 check(test_and_0_0 "0")
 check(test_and_0_1 "0")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ede12adb29afa1b039c65b6eceb83c0e3b39772f
commit ede12adb29afa1b039c65b6eceb83c0e3b39772f
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 10:24:32 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 10:31:55 2012 +0200

    Add test for $<BOOL:> with empty parameter.

diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 6494107..41639ac 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -30,6 +30,7 @@ add_custom_target(check ALL
     -Dtest_bool_off=$<BOOL:Off>
     -Dtest_bool_no=$<BOOL:No>
     -Dtest_bool_n=$<BOOL:N>
+    -Dtest_bool_empty=$<BOOL:>
     -Dtest_strequal_yes_yes=$<STREQUAL:Yes,Yes>
     -Dtest_strequal_yes_yes_cs=$<STREQUAL:Yes,yes>
     -Dtest_strequal_yes_no=$<STREQUAL:Yes,No>
diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake
index 7192470..fd1e2ab 100644
--- a/Tests/GeneratorExpression/check.cmake
+++ b/Tests/GeneratorExpression/check.cmake
@@ -31,6 +31,7 @@ check(test_bool_on "1")
 check(test_bool_off "0")
 check(test_bool_no "0")
 check(test_bool_n "0")
+check(test_bool_empty "0")
 check(test_strequal_yes_yes "1")
 check(test_strequal_yes_yes_cs "0")
 check(test_strequal_yes_no "0")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e74a99751c30aa44a0c49b52b4835fa397833f0f
commit e74a99751c30aa44a0c49b52b4835fa397833f0f
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:36:23 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 10:31:55 2012 +0200

    Ensure that the empty CONFIGURATION can be used conditionally.
    
    The CONFIGURATION can not be manipulated at unit testing time, so
    this is not unit tested further.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index c5824e9..6b96efd 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -237,11 +237,6 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
                        const GeneratorExpressionContent *content,
                        cmGeneratorExpressionDAGChecker *) const
   {
-    if (!context->Config)
-      {
-      return std::string();
-      }
-
     cmsys::RegularExpression configValidator;
     configValidator.compile("^[A-Za-z0-9_]*$");
     if (!configValidator.find(parameters.begin()->c_str()))
@@ -250,6 +245,11 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
                   "Expression syntax not recognized.");
       return std::string();
       }
+    if (!context->Config)
+      {
+      return parameters.front().empty() ? "1" : "0";
+      }
+
     return *parameters.begin() == context->Config ? "1" : "0";
   }
 } configurationTestNode;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ce3cf237d0b002a835a33117eae418b66998abcd
commit ce3cf237d0b002a835a33117eae418b66998abcd
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:31:24 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 10:31:53 2012 +0200

    Validate target and property names.
    
    They must be non-empty, and match a restrictive regexp.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 80cffe9..c5824e9 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -274,11 +274,42 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
           "$<TARGET_PROPERTY:...> expression requires one or two parameters");
       return std::string();
       }
+    cmsys::RegularExpression nameValidator;
+    nameValidator.compile("^[A-Za-z0-9_.-]+$");
+
     cmGeneratorTarget* target = context->Target;
     std::string propertyName = *parameters.begin();
     if (parameters.size() == 2)
       {
+      if (parameters.begin()->empty() && parameters.at(1).empty())
+        {
+        reportError(context, content->GetOriginalExpression(),
+            "$<TARGET_PROPERTY:tgt,prop> expression requires a non-empty "
+            "target name and property name.");
+        return std::string();
+        }
+      if (parameters.begin()->empty())
+        {
+        reportError(context, content->GetOriginalExpression(),
+            "$<TARGET_PROPERTY:tgt,prop> expression requires a non-empty "
+            "target name.");
+        return std::string();
+        }
+
       std::string targetName = parameters.front();
+      propertyName = parameters.at(1);
+      if (!nameValidator.find(targetName.c_str()))
+        {
+        if (!nameValidator.find(propertyName.c_str()))
+          {
+          ::reportError(context, content->GetOriginalExpression(),
+                        "Target name and property name not supported.");
+          return std::string();
+          }
+        ::reportError(context, content->GetOriginalExpression(),
+                      "Target name not supported");
+        return std::string();
+        }
       target = context->Makefile->FindGeneratorTargetToUse(
                                                 targetName.c_str());
 
@@ -291,7 +322,21 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
         reportError(context, content->GetOriginalExpression(), e.str());
         return std::string();
         }
-      propertyName = parameters.at(1);
+      }
+
+    if (propertyName.empty())
+      {
+      reportError(context, content->GetOriginalExpression(),
+          "$<TARGET_PROPERTY:...> expression requires a non-empty property "
+          "name.");
+      return std::string();
+      }
+
+    if (!nameValidator.find(propertyName.c_str()))
+      {
+      ::reportError(context, content->GetOriginalExpression(),
+                    "Property name not supported.");
+      return std::string();
       }
 
     cmGeneratorExpressionDAGChecker dagChecker(context->Backtrace,
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-stderr.txt
new file mode 100644
index 0000000..3287d19
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:Invali/dTarget,INCLUDE_DIRECTORIES>
+
+  Target name not supported.
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1.cmake
new file mode 100644
index 0000000..d5f661d
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:Invali/dTarget,INCLUDE_DIRECTORIES>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-stderr.txt
new file mode 100644
index 0000000..e527e22
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:Invali/dTarget,Invali/dProperty>
+
+  Target name and property name not supported.$
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2.cmake
new file mode 100644
index 0000000..6e4c1d0
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:Invali/dTarget,Invali/dProperty>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-stderr.txt
new file mode 100644
index 0000000..517debb
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:Invali/dProperty>
+
+  Property name not supported.$
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3.cmake
new file mode 100644
index 0000000..3f75aa3
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:Invali/dProperty>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-stderr.txt
new file mode 100644
index 0000000..eab6fb6
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:foo,Invali/dProperty>
+
+  Property name not supported.$
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4.cmake
new file mode 100644
index 0000000..b616c31
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4.cmake
@@ -0,0 +1,9 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(foo "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:foo,Invali/dProperty>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-stderr.txt
new file mode 100644
index 0000000..e2b4fc6
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-stderr.txt
@@ -0,0 +1,7 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:,>
+
+  \$<TARGET_PROPERTY:tgt,prop> expression requires a non-empty target name and
+  property name.
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5.cmake
new file mode 100644
index 0000000..11cb6fa
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:,>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-stderr.txt
new file mode 100644
index 0000000..e94f52f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:,ValidProperty>
+
+  \$<TARGET_PROPERTY:tgt,prop> expression requires a non-empty target name.
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6.cmake
new file mode 100644
index 0000000..bf868a5
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:,ValidProperty>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-stderr.txt
new file mode 100644
index 0000000..2548215
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:foo,>
+
+  \$<TARGET_PROPERTY:...> expression requires a non-empty property name.
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7.cmake
new file mode 100644
index 0000000..36d1a79
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7.cmake
@@ -0,0 +1,9 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(foo "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:foo,>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-stderr.txt
new file mode 100644
index 0000000..2a98f6f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:>
+
+  \$<TARGET_PROPERTY:...> expression requires a non-empty property name.
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8.cmake
new file mode 100644
index 0000000..f059288
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
index e2abd56..0ee3238 100644
--- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
@@ -7,3 +7,11 @@ run_cmake(BadSelfReference4)
 run_cmake(BadSelfReference5)
 run_cmake(BadSelfReference6)
 run_cmake(BadNonTarget)
+run_cmake(BadInvalidName1)
+run_cmake(BadInvalidName2)
+run_cmake(BadInvalidName3)
+run_cmake(BadInvalidName4)
+run_cmake(BadInvalidName5)
+run_cmake(BadInvalidName6)
+run_cmake(BadInvalidName7)
+run_cmake(BadInvalidName8)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=61e32654babe6cfcc0f10db9bd5e58fc85978f48
commit 61e32654babe6cfcc0f10db9bd5e58fc85978f48
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:34:03 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 10:09:08 2012 +0200

    Parse comma after colon tokens specially
    
    Otherwise the comma is treated as plain text by ParseContent.
    
    $<STREQUAL:,> should be valid and true.
    $<STREQUAL:,something> should be valid and false.
    
    $<STREQUAL:,,> should be non-valid as it is 3 parameters.
    $<STREQUAL:something,,> should be non-valid as it is 3 parameters.
    
    Additionally, this allows reporting the correct error for other
    expressions. For example $<TARGET_PROPERTY:,> should be invalid
    because it has an empty target and empty property. It shouldn't
    attempt to read the property ',' on the 'implicit this' target.

diff --git a/Source/cmGeneratorExpressionParser.cxx b/Source/cmGeneratorExpressionParser.cxx
index 344e9f8..d95e1cc 100644
--- a/Source/cmGeneratorExpressionParser.cxx
+++ b/Source/cmGeneratorExpressionParser.cxx
@@ -118,10 +118,16 @@ void cmGeneratorExpressionParser::ParseGeneratorExpression(
     colonToken = this->it;
     parameters.resize(parameters.size() + 1);
     ++this->it;
+    while (this->it->TokenType == cmGeneratorExpressionToken::CommaSeparator)
+      {
+      commaTokens.push_back(this->it);
+      parameters.resize(parameters.size() + 1);
+      ++this->it;
+      }
     while(this->it->TokenType != cmGeneratorExpressionToken::EndExpression)
       {
       this->ParseContent(*(parameters.end() - 1));
-      if (this->it->TokenType == cmGeneratorExpressionToken::CommaSeparator)
+      while (this->it->TokenType == cmGeneratorExpressionToken::CommaSeparator)
         {
         commaTokens.push_back(this->it);
         parameters.resize(parameters.size() + 1);
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 79a8abb..6494107 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -37,6 +37,8 @@ add_custom_target(check ALL
     -Dtest_strequal_angle_r=$<STREQUAL:$<ANGLE-R>,$<ANGLE-R>>
     -Dtest_strequal_comma=$<STREQUAL:$<COMMA>,$<COMMA>>
     -Dtest_strequal_angle_r_comma=$<STREQUAL:$<ANGLE-R>,$<COMMA>>
+    -Dtest_strequal_both_empty=$<STREQUAL:,>
+    -Dtest_strequal_one_empty=$<STREQUAL:something,>
     -Dtest_angle_r=$<ANGLE-R>
     -Dtest_comma=$<COMMA>
     -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake
index 6fb87a2..7192470 100644
--- a/Tests/GeneratorExpression/check.cmake
+++ b/Tests/GeneratorExpression/check.cmake
@@ -38,5 +38,7 @@ check(test_strequal_no_yes "0")
 check(test_strequal_angle_r "1")
 check(test_strequal_comma "1")
 check(test_strequal_angle_r_comma "0")
+check(test_strequal_both_empty "1")
+check(test_strequal_one_empty "0")
 check(test_angle_r ">")
 check(test_comma ",")
diff --git a/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
index 32169c5..e5e628c 100644
--- a/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
+++ b/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
@@ -20,7 +20,7 @@ CMake Error at BadNOT.cmake:1 \(add_custom_target\):
 
     \$<NOT:,>
 
-  \$<NOT> parameter must resolve to exactly one '0' or '1' value.
+  \$<NOT> expression requires exactly one parameter.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 +
diff --git a/Tests/RunCMake/GeneratorExpression/BadStrEqual-result.txt b/Tests/RunCMake/GeneratorExpression/BadStrEqual-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadStrEqual-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadStrEqual-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadStrEqual-stderr.txt
new file mode 100644
index 0000000..dd0d931
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadStrEqual-stderr.txt
@@ -0,0 +1,38 @@
+CMake Error at BadStrEqual.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<STREQUAL>
+
+  \$<STREQUAL> expression requires 2 comma separated parameters, but got 0
+  instead.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++CMake Error at BadStrEqual.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<STREQUAL:>
+
+  \$<STREQUAL> expression requires 2 comma separated parameters, but got 1
+  instead.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadStrEqual.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<STREQUAL:,,>
+
+  \$<STREQUAL> expression requires 2 comma separated parameters, but got 3
+  instead.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadStrEqual.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<STREQUAL:something,,>
+
+  \$<STREQUAL> expression requires 2 comma separated parameters, but got 3
+  instead.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/GeneratorExpression/BadStrEqual.cmake b/Tests/RunCMake/GeneratorExpression/BadStrEqual.cmake
new file mode 100644
index 0000000..56eb458
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadStrEqual.cmake
@@ -0,0 +1,6 @@
+add_custom_target(check ALL COMMAND check
+  $<STREQUAL>
+  $<STREQUAL:>
+  $<STREQUAL:,,>
+  $<STREQUAL:something,,>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
index ed18f25..18a47ae 100644
--- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -4,3 +4,4 @@ run_cmake(BadCONFIG)
 run_cmake(BadOR)
 run_cmake(BadAND)
 run_cmake(BadNOT)
+run_cmake(BadStrEqual)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=14d649ed4acf4ec38a395482e0b7a36ead09623b
commit 14d649ed4acf4ec38a395482e0b7a36ead09623b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:32:39 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 09:24:37 2012 +0200

    Report actual target name not found, not "0" each time.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index ad5f83c..80cffe9 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -278,14 +278,15 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
     std::string propertyName = *parameters.begin();
     if (parameters.size() == 2)
       {
+      std::string targetName = parameters.front();
       target = context->Makefile->FindGeneratorTargetToUse(
-                                                parameters.begin()->c_str());
+                                                targetName.c_str());
 
       if (!target)
         {
         cmOStringStream e;
         e << "Target \""
-          << target
+          << targetName
           << "\" not found.";
         reportError(context, content->GetOriginalExpression(), e.str());
         return std::string();
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-result.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-stderr.txt b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-stderr.txt
new file mode 100644
index 0000000..d2ac7a9
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-stderr.txt
@@ -0,0 +1,6 @@
+CMake Error:
+  Error evaluating generator expression:
+
+    \$<TARGET_PROPERTY:NonExistant,INCLUDE_DIRECTORIES>
+
+  Target "NonExistant" not found.$
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget.cmake
new file mode 100644
index 0000000..b020c08
--- /dev/null
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget.cmake
@@ -0,0 +1,7 @@
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+           "int main(int, char **) { return 0; }\n")
+
+add_executable(TargetPropertyGeneratorExpressions
+           "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+include_directories("$<TARGET_PROPERTY:NonExistant,INCLUDE_DIRECTORIES>")
diff --git a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
index f2ff05b..e2abd56 100644
--- a/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
+++ b/Tests/RunCMake/TargetPropertyGeneratorExpressions/RunCMakeTest.cmake
@@ -6,3 +6,4 @@ run_cmake(BadSelfReference3)
 run_cmake(BadSelfReference4)
 run_cmake(BadSelfReference5)
 run_cmake(BadSelfReference6)
+run_cmake(BadNonTarget)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=deb656a1f37bc014a6e6f54a6c928624531d765e
commit deb656a1f37bc014a6e6f54a6c928624531d765e
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:32:22 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 00:56:57 2012 +0200

    Return after error reported.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index 22f60d4..ad5f83c 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -288,6 +288,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
           << target
           << "\" not found.";
         reportError(context, content->GetOriginalExpression(), e.str());
+        return std::string();
         }
       propertyName = parameters.at(1);
       }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=822a9a31c341fba59a34e8bd0a23b8dc9b794953
commit 822a9a31c341fba59a34e8bd0a23b8dc9b794953
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Oct 4 00:33:21 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Oct 4 00:56:56 2012 +0200

    It is not an error to specify an empty parameter
    
    This is allowed by the CONFIG and STREQUAL expressions.

diff --git a/Source/cmGeneratorExpressionParser.cxx b/Source/cmGeneratorExpressionParser.cxx
index d3c4aa3..344e9f8 100644
--- a/Source/cmGeneratorExpressionParser.cxx
+++ b/Source/cmGeneratorExpressionParser.cxx
@@ -142,10 +142,6 @@ void cmGeneratorExpressionParser::ParseGeneratorExpression(
         --this->NestingLevel;
         ++this->it;
         }
-      if (parameters.empty())
-        {
-          // ERROR
-        }
     }
 
   if (nestedLevel != this->NestingLevel)

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

Summary of changes:
 Source/cmGeneratorExpressionEvaluator.cxx          |   65 +++++++++++++++++---
 Source/cmGeneratorExpressionParser.cxx             |   12 ++--
 Tests/GeneratorExpression/CMakeLists.txt           |    5 ++
 Tests/GeneratorExpression/check.cmake              |    5 ++
 .../RunCMake/GeneratorExpression/BadNOT-stderr.txt |    2 +-
 .../{BadAND-result.txt => BadStrEqual-result.txt}  |    0
 .../GeneratorExpression/BadStrEqual-stderr.txt     |   38 +++++++++++
 .../RunCMake/GeneratorExpression/BadStrEqual.cmake |    6 ++
 .../GeneratorExpression/RunCMakeTest.cmake         |    1 +
 .../BadInvalidName1-result.txt}                    |    0
 .../BadInvalidName1-stderr.txt                     |    6 ++
 .../BadInvalidName1.cmake                          |    7 ++
 .../BadInvalidName2-result.txt}                    |    0
 .../BadInvalidName2-stderr.txt                     |    6 ++
 .../BadInvalidName2.cmake                          |    7 ++
 .../BadInvalidName3-result.txt}                    |    0
 .../BadInvalidName3-stderr.txt                     |    6 ++
 .../BadInvalidName3.cmake                          |    7 ++
 .../BadInvalidName4-result.txt}                    |    0
 .../BadInvalidName4-stderr.txt                     |    6 ++
 .../BadInvalidName4.cmake                          |    9 +++
 .../BadInvalidName5-result.txt}                    |    0
 .../BadInvalidName5-stderr.txt                     |    7 ++
 .../BadInvalidName5.cmake                          |    7 ++
 .../BadInvalidName6-result.txt}                    |    0
 .../BadInvalidName6-stderr.txt                     |    6 ++
 .../BadInvalidName6.cmake                          |    7 ++
 .../BadInvalidName7-result.txt}                    |    0
 .../BadInvalidName7-stderr.txt                     |    6 ++
 .../BadInvalidName7.cmake                          |    9 +++
 .../BadInvalidName8-result.txt}                    |    0
 .../BadInvalidName8-stderr.txt                     |    6 ++
 .../BadInvalidName8.cmake                          |    7 ++
 .../BadNonTarget-result.txt}                       |    0
 .../BadNonTarget-stderr.txt                        |    6 ++
 .../BadNonTarget.cmake                             |    7 ++
 .../RunCMakeTest.cmake                             |    9 +++
 37 files changed, 250 insertions(+), 15 deletions(-)
 copy Tests/RunCMake/GeneratorExpression/{BadAND-result.txt => BadStrEqual-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadStrEqual-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadStrEqual.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName1-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName1.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName2-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName2.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName3-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName3.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName4-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName4.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName5-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName5.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName6-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName6.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName7-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName7.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadInvalidName8-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadInvalidName8.cmake
 copy Tests/RunCMake/{GeneratorExpression/BadAND-result.txt => TargetPropertyGeneratorExpressions/BadNonTarget-result.txt} (100%)
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget-stderr.txt
 create mode 100644 Tests/RunCMake/TargetPropertyGeneratorExpressions/BadNonTarget.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list