[Cmake-commits] CMake branch, next, updated. v2.8.9-84-gbe5f6ec

Brad King brad.king at kitware.com
Wed Aug 15 11:52:37 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  be5f6ece86bccc7d834ed2546aafb499e0f65c79 (commit)
       via  9d9f616792ee07a460af9f0a6dc036d81b852e66 (commit)
       via  ebf05abda15967f8f50dcf132f7bf84472ca6337 (commit)
      from  05693aa835ecb3610e3e1a28ecc7b8f445ac2828 (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=be5f6ece86bccc7d834ed2546aafb499e0f65c79
commit be5f6ece86bccc7d834ed2546aafb499e0f65c79
Merge: 05693aa 9d9f616
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Aug 15 11:52:34 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Aug 15 11:52:34 2012 -0400

    Merge topic 'generator-expression-conditions' into next
    
    9d9f616 Add $<CONFIG:...> boolean query generator expression
    ebf05ab Add boolean generator expressions


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9d9f616792ee07a460af9f0a6dc036d81b852e66
commit 9d9f616792ee07a460af9f0a6dc036d81b852e66
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Aug 13 10:00:32 2012 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Aug 15 11:44:49 2012 -0400

    Add $<CONFIG:...> boolean query generator expression
    
    This expression evaluates to '1' or '0' to indicate whether the build
    configuration for which the expression is evaluated matches tha named
    configuration.  In combination with the "$<0:...>" and "$<1:...>"
    expressions this allows per-configuration content to be generated.

diff --git a/Source/cmDocumentGeneratorExpressions.h b/Source/cmDocumentGeneratorExpressions.h
index 5d6553d..74c673a 100644
--- a/Source/cmDocumentGeneratorExpressions.h
+++ b/Source/cmDocumentGeneratorExpressions.h
@@ -18,6 +18,7 @@
   "Valid expressions are:\n"                                            \
   "  $<0:...>                  = empty string (ignores \"...\")\n"      \
   "  $<1:...>                  = content of \"...\"\n"                  \
+  "  $<CONFIG:cfg>             = '1' if config is \"cfg\", else '0'\n"  \
   "  $<CONFIGURATION>          = configuration name\n"                  \
   "  $<TARGET_FILE:tgt>        = main file (.exe, .so.1.2, .a)\n"       \
   "  $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)\n"   \
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx
index ed33c7e..92bbf1d 100644
--- a/Source/cmGeneratorExpression.cxx
+++ b/Source/cmGeneratorExpression.cxx
@@ -14,6 +14,8 @@
 #include "cmMakefile.h"
 #include "cmTarget.h"
 
+#include <cmsys/String.h>
+
 //----------------------------------------------------------------------------
 cmGeneratorExpression::cmGeneratorExpression(
   cmMakefile* mf, const char* config,
@@ -25,6 +27,7 @@ cmGeneratorExpression::cmGeneratorExpression(
                            "_FILE(|_NAME|_DIR):" // Filename component.
                            "([A-Za-z0-9_.-]+)"   // Target name.
                            ">$");
+  this->TestConfig.compile("^\\$<CONFIG:([A-Za-z0-9_]*)>$");
 }
 
 //----------------------------------------------------------------------------
@@ -162,6 +165,12 @@ bool cmGeneratorExpression::Evaluate(const char* expr, std::string& result)
     {
     return cmGeneratorExpressionBool(expr+5, result, "OR", "0", "1");
     }
+  else if(this->TestConfig.find(expr))
+    {
+    result = cmsysString_strcasecmp(this->TestConfig.match(1).c_str(),
+                                    this->Config? this->Config:"") == 0
+      ? "1":"0";
+    }
   else
     {
     result = "Expression syntax not recognized.";
diff --git a/Source/cmGeneratorExpression.h b/Source/cmGeneratorExpression.h
index 1a9d4c6..a023eb0 100644
--- a/Source/cmGeneratorExpression.h
+++ b/Source/cmGeneratorExpression.h
@@ -51,6 +51,7 @@ private:
   std::vector<char> Data;
   std::stack<size_t> Barriers;
   cmsys::RegularExpression TargetInfo;
+  cmsys::RegularExpression TestConfig;
   std::set<cmTarget*> Targets;
   bool Evaluate();
   bool Evaluate(const char* expr, std::string& result);
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 8d7d87d..2b135dc 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -12,6 +12,8 @@ add_custom_target(check ALL
     -Dtest_and_1=$<AND:1>
     -Dtest_and_1_0=$<AND:1,0>
     -Dtest_and_1_1=$<AND:1,1>
+    -Dtest_config_0=$<CONFIG:$<CONFIGURATION>x>
+    -Dtest_config_1=$<CONFIG:$<CONFIGURATION>>
     -Dtest_not_0=$<NOT:0>
     -Dtest_not_1=$<NOT:1>
     -Dtest_or_0=$<OR:0>
diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake
index c40b847..e243d85 100644
--- a/Tests/GeneratorExpression/check.cmake
+++ b/Tests/GeneratorExpression/check.cmake
@@ -13,6 +13,8 @@ check(test_and_0_1 "0")
 check(test_and_1 "1")
 check(test_and_1_0 "0")
 check(test_and_1_1 "1")
+check(test_config_0 "0")
+check(test_config_1 "1")
 check(test_not_0 "1")
 check(test_not_1 "0")
 check(test_or_0 "0")
diff --git a/Tests/RunCMake/GeneratorExpression/BadCONFIG-result.txt b/Tests/RunCMake/GeneratorExpression/BadCONFIG-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadCONFIG-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadCONFIG-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadCONFIG-stderr.txt
new file mode 100644
index 0000000..7c86b25
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadCONFIG-stderr.txt
@@ -0,0 +1,8 @@
+CMake Error at BadCONFIG.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<CONFIG:.>
+
+  Expression syntax not recognized.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/GeneratorExpression/BadCONFIG.cmake b/Tests/RunCMake/GeneratorExpression/BadCONFIG.cmake
new file mode 100644
index 0000000..0c13f89
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadCONFIG.cmake
@@ -0,0 +1,3 @@
+add_custom_target(check ALL COMMAND check
+  $<CONFIG:.>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
index 95b16b3..ed18f25 100644
--- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -1,5 +1,6 @@
 include(RunCMake)
 
+run_cmake(BadCONFIG)
 run_cmake(BadOR)
 run_cmake(BadAND)
 run_cmake(BadNOT)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ebf05abda15967f8f50dcf132f7bf84472ca6337
commit ebf05abda15967f8f50dcf132f7bf84472ca6337
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Aug 13 09:49:53 2012 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Aug 15 11:44:49 2012 -0400

    Add boolean generator expressions
    
    Add generator expressions that combine and use boolean test results:
    
     $<0:...>         = empty string (ignores "...")
     $<1:...>         = content of "..."
     $<AND:?[,?]...>  = '1' if all '?' are '1', else '0'
     $<OR:?[,?]...>   = '0' if all '?' are '0', else '1'
     $<NOT:?>         = '0' if '?' is '1', else '1'
    
    These will be useful to evaluate (future) boolean query expressions and
    condition content on the results.  Include tests and documentation.

diff --git a/Source/cmDocumentGeneratorExpressions.h b/Source/cmDocumentGeneratorExpressions.h
index 5359013..5d6553d 100644
--- a/Source/cmDocumentGeneratorExpressions.h
+++ b/Source/cmDocumentGeneratorExpressions.h
@@ -16,6 +16,8 @@
   "Generator expressions are evaluted during build system generation "  \
   "to produce information specific to each build configuration.  "      \
   "Valid expressions are:\n"                                            \
+  "  $<0:...>                  = empty string (ignores \"...\")\n"      \
+  "  $<1:...>                  = content of \"...\"\n"                  \
   "  $<CONFIGURATION>          = configuration name\n"                  \
   "  $<TARGET_FILE:tgt>        = main file (.exe, .so.1.2, .a)\n"       \
   "  $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)\n"   \
@@ -25,6 +27,12 @@
   "versions can produce the directory and file name components:\n"      \
   "  $<TARGET_FILE_DIR:tgt>/$<TARGET_FILE_NAME:tgt>\n"                  \
   "  $<TARGET_LINKER_FILE_DIR:tgt>/$<TARGET_LINKER_FILE_NAME:tgt>\n"    \
-  "  $<TARGET_SONAME_FILE_DIR:tgt>/$<TARGET_SONAME_FILE_NAME:tgt>\n"
+  "  $<TARGET_SONAME_FILE_DIR:tgt>/$<TARGET_SONAME_FILE_NAME:tgt>\n"    \
+  "Boolean expressions:\n"                                              \
+  "  $<AND:?[,?]...>           = '1' if all '?' are '1', else '0'\n"    \
+  "  $<OR:?[,?]...>            = '0' if all '?' are '0', else '1'\n"    \
+  "  $<NOT:?>                  = '0' if '?' is '1', else '1'\n"         \
+  "where '?' is always either '0' or '1'.\n"                            \
+  ""
 
 #endif
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx
index f88ab0b..ed33c7e 100644
--- a/Source/cmGeneratorExpression.cxx
+++ b/Source/cmGeneratorExpression.cxx
@@ -103,6 +103,26 @@ bool cmGeneratorExpression::Evaluate()
 }
 
 //----------------------------------------------------------------------------
+static bool cmGeneratorExpressionBool(const char* c, std::string& result,
+                                      const char* name,
+                                      const char* a, const char* b)
+{
+  result = a;
+  while((c[0] == '0' || c[0] == '1') && (c[1] == ',' || c[1] == '>'))
+    {
+    if(c[0] == b[0]) { result = b; }
+    c += 2;
+    }
+  if(c[0])
+    {
+    result = name;
+    result += " requires one or more comma-separated '0' or '1' values.";
+    return false;
+    }
+  return true;
+}
+
+//----------------------------------------------------------------------------
 bool cmGeneratorExpression::Evaluate(const char* expr, std::string& result)
 {
   if(this->TargetInfo.find(expr))
@@ -116,6 +136,32 @@ bool cmGeneratorExpression::Evaluate(const char* expr, std::string& result)
     {
     result = this->Config? this->Config : "";
     }
+  else if(strncmp(expr, "$<0:",4) == 0)
+    {
+    result = "";
+    }
+  else if(strncmp(expr, "$<1:",4) == 0)
+    {
+    result = std::string(expr+4, strlen(expr)-5);
+    }
+  else if(strncmp(expr, "$<NOT:",6) == 0)
+    {
+    const char* c = expr+6;
+    if((c[0] != '0' && c[0] != '1') || c[1] != '>' || c[2])
+      {
+      result = "NOT requires exactly one '0' or '1' value.";
+      return false;
+      }
+    result = c[0] == '1'? "0" : "1";
+    }
+  else if(strncmp(expr, "$<AND:",6) == 0)
+    {
+    return cmGeneratorExpressionBool(expr+6, result, "AND", "1", "0");
+    }
+  else if(strncmp(expr, "$<OR:",5) == 0)
+    {
+    return cmGeneratorExpressionBool(expr+5, result, "OR", "0", "1");
+    }
   else
     {
     result = "Expression syntax not recognized.";
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 9512ea6..ae51697 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -551,6 +551,16 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     FAIL_REGULAR_EXPRESSION "Unexpected: ")
   list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ArgumentExpansion")
 
+  add_test(GeneratorExpression  ${CMAKE_CTEST_COMMAND}
+    --build-and-test
+    "${CMake_SOURCE_DIR}/Tests/GeneratorExpression"
+    "${CMake_BINARY_DIR}/Tests/GeneratorExpression"
+    --build-generator ${CMAKE_TEST_GENERATOR}
+    --build-project GeneratorExpression
+    --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
+    )
+  list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/GeneratorExpression")
+
   add_test(CustomCommand  ${CMAKE_CTEST_COMMAND}
     --build-and-test
     "${CMake_SOURCE_DIR}/Tests/CustomCommand"
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
new file mode 100644
index 0000000..8d7d87d
--- /dev/null
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required (VERSION 2.8.8)
+project(GeneratorExpression NONE)
+
+add_custom_target(check ALL
+  COMMAND ${CMAKE_COMMAND}
+    -Dtest_0=$<0:nothing>
+    -Dtest_1=$<1:content>
+    -Dconfig=$<CONFIGURATION>
+    -Dtest_and_0=$<AND:0>
+    -Dtest_and_0_0=$<AND:0,0>
+    -Dtest_and_0_1=$<AND:0,1>
+    -Dtest_and_1=$<AND:1>
+    -Dtest_and_1_0=$<AND:1,0>
+    -Dtest_and_1_1=$<AND:1,1>
+    -Dtest_not_0=$<NOT:0>
+    -Dtest_not_1=$<NOT:1>
+    -Dtest_or_0=$<OR:0>
+    -Dtest_or_0_0=$<OR:0,0>
+    -Dtest_or_0_1=$<OR:0,1>
+    -Dtest_or_1=$<OR:1>
+    -Dtest_or_1_0=$<OR:1,0>
+    -Dtest_or_1_1=$<OR:1,1>
+    -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
+  COMMAND ${CMAKE_COMMAND} -E echo "check done"
+  VERBATIM
+  )
diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake
new file mode 100644
index 0000000..c40b847
--- /dev/null
+++ b/Tests/GeneratorExpression/check.cmake
@@ -0,0 +1,23 @@
+macro(check var val)
+  if(NOT "${${var}}" STREQUAL "${val}")
+    message(SEND_ERROR "${var} is \"${${var}}\", not \"${val}\"")
+  endif()
+endmacro()
+
+message(STATUS "config=[${config}]")
+check(test_0 "")
+check(test_1 "content")
+check(test_and_0 "0")
+check(test_and_0_0 "0")
+check(test_and_0_1 "0")
+check(test_and_1 "1")
+check(test_and_1_0 "0")
+check(test_and_1_1 "1")
+check(test_not_0 "1")
+check(test_not_1 "0")
+check(test_or_0 "0")
+check(test_or_0_0 "0")
+check(test_or_0_1 "1")
+check(test_or_1 "1")
+check(test_or_1_0 "1")
+check(test_or_1_1 "1")
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index eca96f9..3ea54f1 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -45,6 +45,7 @@ macro(add_RunCMake_test test)
     )
 endmacro()
 
+add_RunCMake_test(GeneratorExpression)
 add_RunCMake_test(Languages)
 add_RunCMake_test(ObjectLibrary)
 
diff --git a/Tests/RunCMake/GeneratorExpression/BadAND-result.txt b/Tests/RunCMake/GeneratorExpression/BadAND-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadAND-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadAND-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadAND-stderr.txt
new file mode 100644
index 0000000..ced21d8
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadAND-stderr.txt
@@ -0,0 +1,17 @@
+CMake Error at BadAND.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<AND:>
+
+  AND requires one or more comma-separated '0' or '1' values.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadAND.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<AND:,>
+
+  AND requires one or more comma-separated '0' or '1' values.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/GeneratorExpression/BadAND.cmake b/Tests/RunCMake/GeneratorExpression/BadAND.cmake
new file mode 100644
index 0000000..7926540
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadAND.cmake
@@ -0,0 +1,4 @@
+add_custom_target(check ALL COMMAND check
+  $<AND:>
+  $<AND:,>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/BadNOT-result.txt b/Tests/RunCMake/GeneratorExpression/BadNOT-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadNOT-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
new file mode 100644
index 0000000..5721f5f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
@@ -0,0 +1,26 @@
+CMake Error at BadNOT.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<NOT:>
+
+  NOT requires exactly one '0' or '1' value.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadNOT.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<NOT:,>
+
+  NOT requires exactly one '0' or '1' value.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadNOT.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<NOT:0,1>
+
+  NOT requires exactly one '0' or '1' value.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/GeneratorExpression/BadNOT.cmake b/Tests/RunCMake/GeneratorExpression/BadNOT.cmake
new file mode 100644
index 0000000..452293b
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadNOT.cmake
@@ -0,0 +1,5 @@
+add_custom_target(check ALL COMMAND check
+  $<NOT:>
+  $<NOT:,>
+  $<NOT:0,1>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/BadOR-result.txt b/Tests/RunCMake/GeneratorExpression/BadOR-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadOR-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GeneratorExpression/BadOR-stderr.txt b/Tests/RunCMake/GeneratorExpression/BadOR-stderr.txt
new file mode 100644
index 0000000..72ef2dd
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadOR-stderr.txt
@@ -0,0 +1,17 @@
+CMake Error at BadOR.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<OR:>
+
+  OR requires one or more comma-separated '0' or '1' values.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+CMake Error at BadOR.cmake:1 \(add_custom_target\):
+  Error evaluating generator expression:
+
+    \$<OR:,>
+
+  OR requires one or more comma-separated '0' or '1' values.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/GeneratorExpression/BadOR.cmake b/Tests/RunCMake/GeneratorExpression/BadOR.cmake
new file mode 100644
index 0000000..f16f56a
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/BadOR.cmake
@@ -0,0 +1,4 @@
+add_custom_target(check ALL COMMAND check
+  $<OR:>
+  $<OR:,>
+  VERBATIM)
diff --git a/Tests/RunCMake/GeneratorExpression/CMakeLists.txt b/Tests/RunCMake/GeneratorExpression/CMakeLists.txt
new file mode 100644
index 0000000..e8db6b0
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
new file mode 100644
index 0000000..95b16b3
--- /dev/null
+++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake
@@ -0,0 +1,5 @@
+include(RunCMake)
+
+run_cmake(BadOR)
+run_cmake(BadAND)
+run_cmake(BadNOT)

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

Summary of changes:
 Source/cmDocumentGeneratorExpressions.h            |   11 ++++-
 Source/cmGeneratorExpression.cxx                   |   55 ++++++++++++++++++++
 Source/cmGeneratorExpression.h                     |    1 +
 Tests/CMakeLists.txt                               |   10 ++++
 Tests/GeneratorExpression/CMakeLists.txt           |   28 ++++++++++
 Tests/GeneratorExpression/check.cmake              |   25 +++++++++
 Tests/RunCMake/CMakeLists.txt                      |    1 +
 .../BadAND-result.txt}                             |    0
 .../RunCMake/GeneratorExpression/BadAND-stderr.txt |   17 ++++++
 Tests/RunCMake/GeneratorExpression/BadAND.cmake    |    4 ++
 .../BadCONFIG-result.txt}                          |    0
 .../GeneratorExpression/BadCONFIG-stderr.txt       |    8 +++
 Tests/RunCMake/GeneratorExpression/BadCONFIG.cmake |    3 +
 .../BadNOT-result.txt}                             |    0
 .../RunCMake/GeneratorExpression/BadNOT-stderr.txt |   26 +++++++++
 Tests/RunCMake/GeneratorExpression/BadNOT.cmake    |    5 ++
 .../BadOR-result.txt}                              |    0
 .../RunCMake/GeneratorExpression/BadOR-stderr.txt  |   17 ++++++
 Tests/RunCMake/GeneratorExpression/BadOR.cmake     |    4 ++
 .../CMakeLists.txt                                 |    0
 .../GeneratorExpression/RunCMakeTest.cmake         |    6 ++
 21 files changed, 220 insertions(+), 1 deletions(-)
 create mode 100644 Tests/GeneratorExpression/CMakeLists.txt
 create mode 100644 Tests/GeneratorExpression/check.cmake
 copy Tests/RunCMake/{Languages/NoLangSHARED-result.txt => GeneratorExpression/BadAND-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadAND-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadAND.cmake
 copy Tests/RunCMake/{Languages/NoLangSHARED-result.txt => GeneratorExpression/BadCONFIG-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadCONFIG-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadCONFIG.cmake
 copy Tests/RunCMake/{Languages/NoLangSHARED-result.txt => GeneratorExpression/BadNOT-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadNOT-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadNOT.cmake
 copy Tests/RunCMake/{Languages/NoLangSHARED-result.txt => GeneratorExpression/BadOR-result.txt} (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadOR-stderr.txt
 create mode 100644 Tests/RunCMake/GeneratorExpression/BadOR.cmake
 copy Tests/RunCMake/{Languages => GeneratorExpression}/CMakeLists.txt (100%)
 create mode 100644 Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list