[Cmake-commits] CMake branch, next, updated. v2.8.12-4297-gb32b9f2

Stephen Kelly steveire at gmail.com
Tue Oct 22 16:36:31 EDT 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  b32b9f2a7ac9ef3f97ee67fc54442a04497b6ffa (commit)
       via  ebd3bcf529f5036944df37adf1713d66eec367ab (commit)
      from  d71fa3e0e5f64aabacd6ae21353c540457c8556d (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=b32b9f2a7ac9ef3f97ee67fc54442a04497b6ffa
commit b32b9f2a7ac9ef3f97ee67fc54442a04497b6ffa
Merge: d71fa3e ebd3bcf
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Oct 22 16:36:23 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Oct 22 16:36:23 2013 -0400

    Merge topic 'fix-tll-static-private' into next
    
    ebd3bcf Don't add invalid content to static lib INTERFACE_LINK_LIBRARIES.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ebd3bcf529f5036944df37adf1713d66eec367ab
commit ebd3bcf529f5036944df37adf1713d66eec367ab
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Oct 20 20:39:16 2013 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Oct 22 22:35:54 2013 +0200

    Don't add invalid content to static lib INTERFACE_LINK_LIBRARIES.
    
    Only valid target names or generator expressions may appear in
    the target field of a LINK_ONLY expression.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index b6182ab..24978d9 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -985,15 +985,20 @@ void cmTarget::MergeLinkLibraries( cmMakefile& mf,
   i += this->PrevLinkedLibraries.size();
   for( ; i != libs.end(); ++i )
     {
+    const char *lib = i->first.c_str();
     // We call this so that the dependencies get written to the cache
-    this->AddLinkLibrary( mf, selfname, i->first.c_str(), i->second );
+    this->AddLinkLibrary( mf, selfname, lib, i->second );
 
     if (this->GetType() == cmTarget::STATIC_LIBRARY)
       {
-      this->AppendProperty("INTERFACE_LINK_LIBRARIES",
-            ("$<LINK_ONLY:" +
-            this->GetDebugGeneratorExpressions(i->first.c_str(), i->second) +
-            ">").c_str());
+      if (cmGeneratorExpression::IsValidTargetName(lib)
+          || cmGeneratorExpression::Find(lib) != std::string::npos)
+        {
+        this->AppendProperty("INTERFACE_LINK_LIBRARIES",
+              ("$<LINK_ONLY:" +
+              this->GetDebugGeneratorExpressions(lib, i->second)
+              + ">").c_str());
+        }
       }
     }
   this->PrevLinkedLibraries = libs;
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx
index 0707c62..d3db514 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -395,10 +395,14 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
       {
       if (this->Target->GetType() == cmTarget::STATIC_LIBRARY)
         {
-        this->Target->AppendProperty("INTERFACE_LINK_LIBRARIES",
+        if (cmGeneratorExpression::IsValidTargetName(lib)
+            || cmGeneratorExpression::Find(lib) != std::string::npos)
+          {
+          this->Target->AppendProperty("INTERFACE_LINK_LIBRARIES",
                   ("$<LINK_ONLY:" +
                   this->Target->GetDebugGeneratorExpressions(lib, llt) +
                   ">").c_str());
+          }
         }
       // Not a 'public' or 'interface' library. Do not add to interface
       // property.
diff --git a/Tests/CMakeCommands/target_link_libraries/cmp0022/CMakeLists.txt b/Tests/CMakeCommands/target_link_libraries/cmp0022/CMakeLists.txt
index 07d7c43..7a5c621 100644
--- a/Tests/CMakeCommands/target_link_libraries/cmp0022/CMakeLists.txt
+++ b/Tests/CMakeCommands/target_link_libraries/cmp0022/CMakeLists.txt
@@ -21,7 +21,10 @@ add_library(staticlib1 STATIC staticlib1.cpp)
 generate_export_header(staticlib1)
 add_library(staticlib2 STATIC staticlib2.cpp)
 generate_export_header(staticlib2)
+add_library(staticlib3 STATIC staticlib3.cpp)
+generate_export_header(staticlib3)
 target_link_libraries(staticlib1 LINK_PUBLIC staticlib2)
+target_link_libraries(staticlib1 LINK_PRIVATE "-L${CMAKE_CURRENT_BINARY_DIR} -Wl,--start-group -lstaticlib3 -Wl,--end-group")
 
 add_executable(staticlib_exe staticlib_exe.cpp)
 target_link_libraries(staticlib_exe staticlib1)
diff --git a/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.cpp b/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.cpp
new file mode 100644
index 0000000..570a911
--- /dev/null
+++ b/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.cpp
@@ -0,0 +1,2 @@
+
+int staticlib3() { return 0; }
diff --git a/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.h b/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.h
new file mode 100644
index 0000000..9c88522
--- /dev/null
+++ b/Tests/CMakeCommands/target_link_libraries/cmp0022/staticlib3.h
@@ -0,0 +1,4 @@
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+int staticlib3();

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list