[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2235-g05f3537

Stephen Kelly steveire at gmail.com
Wed Feb 20 07:31:18 EST 2013


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  05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0 (commit)
       via  6ad2b22a5508af5f4aa8c82d3677cf19a7f59027 (commit)
      from  d34ceba47d9bf6b39ea9c8ed2dfabd9f2b5cb8c9 (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=05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0
commit 05f3537f1b4ae9c1f2008c6e9d412990f2b48ae0
Merge: d34ceba 6ad2b22
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 20 07:31:12 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Feb 20 07:31:12 2013 -0500

    Merge topic 'interface-property-external-read' into next
    
    6ad2b22 Fix the GeneratorExpression test reading INCLUDE_DIRECTORIES.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ad2b22a5508af5f4aa8c82d3677cf19a7f59027
commit 6ad2b22a5508af5f4aa8c82d3677cf19a7f59027
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 20 13:26:12 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Feb 20 13:26:12 2013 +0100

    Fix the GeneratorExpression test reading INCLUDE_DIRECTORIES.
    
    The test was incorrectly expecting only the direct includes, instead
    of expecting the includes to be evaluated transitively via the link
    interface.

diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index b6a2c63..c294425 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -476,8 +476,22 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
 
     std::string linkedTargetsContent;
 
+    std::string interfacePropertyName;
+
     if (propertyName == "INTERFACE_INCLUDE_DIRECTORIES"
-        || propertyName == "INTERFACE_COMPILE_DEFINITIONS")
+        || propertyName == "INCLUDE_DIRECTORIES")
+      {
+      interfacePropertyName = "INTERFACE_INCLUDE_DIRECTORIES";
+      }
+    else if (propertyName == "INTERFACE_COMPILE_DEFINITIONS"
+        || propertyName == "COMPILE_DEFINITIONS"
+        || strncmp(propertyName.c_str(), "COMPILE_DEFINITIONS_", 20) == 0)
+      {
+      interfacePropertyName = "INTERFACE_COMPILE_DEFINITIONS";
+      }
+
+    if (interfacePropertyName == "INTERFACE_INCLUDE_DIRECTORIES"
+        || interfacePropertyName == "INTERFACE_COMPILE_DEFINITIONS")
       {
       const cmTarget::LinkInterface *iface = target->GetLinkInterface(
                                                     context->Config,
@@ -495,7 +509,8 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
           if (context->Makefile->FindTargetToUse(it->c_str()))
             {
             depString +=
-              sep + "$<TARGET_PROPERTY:" + *it + "," + propertyName + ">";
+              sep + "$<TARGET_PROPERTY:" + *it + ","
+                                         + interfacePropertyName + ">";
             sep = ";";
             }
           }
@@ -550,7 +565,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
               sizeof(*targetPropertyTransitiveWhitelist));
          ++i)
       {
-      if (targetPropertyTransitiveWhitelist[i] == propertyName)
+      if (targetPropertyTransitiveWhitelist[i] == interfacePropertyName)
         {
         cmGeneratorExpression ge(context->Backtrace);
         cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(prop);
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt
index 75bf21a..8a64dc2 100644
--- a/Tests/GeneratorExpression/CMakeLists.txt
+++ b/Tests/GeneratorExpression/CMakeLists.txt
@@ -80,6 +80,9 @@ target_link_libraries(empty1 LINK_PUBLIC empty2)
 target_link_libraries(empty2 LINK_PUBLIC empty3 empty4)
 target_link_libraries(empty3 LINK_PUBLIC empty2 empty4)
 
+add_library(empty5 empty.cpp)
+target_include_directories(empty5 PRIVATE /empty5/private)
+
 add_custom_target(check-part2 ALL
   COMMAND ${CMAKE_COMMAND}
     -Dtest_incomplete_1=$<
@@ -114,6 +117,7 @@ add_custom_target(check-part2 ALL
     -Dtest_target_includes5=$<TARGET_PROPERTY:empty2,INCLUDE_DIRECTORIES>
     -Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
     -Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
+    -Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES>
     -P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
   COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
   VERBATIM
diff --git a/Tests/GeneratorExpression/check-part2.cmake b/Tests/GeneratorExpression/check-part2.cmake
index 2a5c9a1..177bace 100644
--- a/Tests/GeneratorExpression/check-part2.cmake
+++ b/Tests/GeneratorExpression/check-part2.cmake
@@ -29,7 +29,8 @@ check(test_target_name_2 "tgt:ok")
 check(test_target_includes1 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
 check(test_target_includes2 "/empty2/public;/empty3/public;/empty4/public")
 check(test_target_includes3 "/empty3/public;/empty2/public;/empty4/public")
-check(test_target_includes4 "/empty1/public;/empty1/private")
-check(test_target_includes5 "/empty2/public")
-check(test_target_includes6 "/empty3/public;/empty3/private")
+check(test_target_includes4 "/empty1/public;/empty1/private;/empty2/public;/empty3/public;/empty4/public")
+check(test_target_includes5 "/empty2/public;/empty3/public;/empty2/public;/empty4/public")
+check(test_target_includes6 "/empty3/public;/empty3/private;/empty2/public;/empty3/public;/empty4/public")
 check(test_target_includes7 "/empty1/public;/empty2/public;/empty3/public;/empty4/public")
+check(test_target_includes8 "/empty5/private")

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

Summary of changes:
 Source/cmGeneratorExpressionEvaluator.cxx   |   21 ++++++++++++++++++---
 Tests/GeneratorExpression/CMakeLists.txt    |    4 ++++
 Tests/GeneratorExpression/check-part2.cmake |    7 ++++---
 3 files changed, 26 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list