[Cmake-commits] CMake branch, next, updated. v2.8.10.2-1739-gdf98eb2

Stephen Kelly steveire at gmail.com
Wed Jan 23 16:27:56 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  df98eb27b741af912b23b0470b456b150818f888 (commit)
       via  55557400eedeb0fdd686a795b66a21e021b507e9 (commit)
      from  28289b59e7664fa4970574a02d048c0ceda4f809 (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=df98eb27b741af912b23b0470b456b150818f888
commit df98eb27b741af912b23b0470b456b150818f888
Merge: 28289b5 5555740
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jan 23 16:27:54 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jan 23 16:27:54 2013 -0500

    Merge topic 'fix-COMPATIBLE_INTERFACE-link-libraries' into next
    
    5555740 Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55557400eedeb0fdd686a795b66a21e021b507e9
commit 55557400eedeb0fdd686a795b66a21e021b507e9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jan 23 22:17:14 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jan 23 22:17:14 2013 +0100

    Exclude the LINK_LIBRARIES related properties from INTERFACE evaluation.
    
    These interface-related link-libraries properties are used to determine
    the value of the other INTERFACE properties, so we were getting infinite
    recursion and segfaults otherwise.

diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx
index 057f4c3..819bacd 100644
--- a/Source/cmGeneratorExpressionDAGChecker.cxx
+++ b/Source/cmGeneratorExpressionDAGChecker.cxx
@@ -117,5 +117,11 @@ bool cmGeneratorExpressionDAGChecker::EvaluatingLinkLibraries()
     parent = parent->Parent;
     top = parent;
     }
-  return top->Property == "LINK_LIBRARIES";
+
+  const char *prop = top->Property.c_str();
+  return (strcmp(prop, "LINK_LIBRARIES") == 0
+       || strcmp(prop, "LINK_INTERFACE_LIBRARIES") == 0
+       || strcmp(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES") == 0
+       || strncmp(prop, "LINK_INTERFACE_LIBRARIES_", 26) == 0
+       || strncmp(prop, "IMPORTED_LINK_INTERFACE_LIBRARIES_", 35) == 0);
 }
diff --git a/Tests/CompatibleInterface/CMakeLists.txt b/Tests/CompatibleInterface/CMakeLists.txt
index d0eb60f..8f74f4f 100644
--- a/Tests/CompatibleInterface/CMakeLists.txt
+++ b/Tests/CompatibleInterface/CMakeLists.txt
@@ -9,6 +9,7 @@ set_property(TARGET iface1 APPEND PROPERTY
     BOOL_PROP1
     BOOL_PROP2
     BOOL_PROP3
+    BOOL_PROP4
 )
 
 set_property(TARGET iface1 PROPERTY INTERFACE_BOOL_PROP1 ON)
@@ -26,3 +27,13 @@ target_compile_definitions(CompatibleInterface
     $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP2>>:BOOL_PROP2>
     $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP3>>:BOOL_PROP3>
 )
+
+add_library(iface2 SHARED empty.cpp)
+
+# For the LINK_LIBRARIES and related properties, we should not evaluate
+# properties defined only in the interface - they should be implicitly zero
+set_property(TARGET iface2
+  APPEND PROPERTY
+    LINK_INTERFACE_LIBRARIES $<$<BOOL:$<TARGET_PROPERTY:BOOL_PROP4>>:nonexistant>
+)
+target_link_libraries(CompatibleInterface iface2)

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

Summary of changes:
 Source/cmGeneratorExpressionDAGChecker.cxx |    8 +++++++-
 Tests/CompatibleInterface/CMakeLists.txt   |   11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list