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  10e54d095de4c136589a588d10b7b68a79db289a (commit)
       via  42a17cc664d1c2d560df074a1c1c60d6d54ce2c5 (commit)
      from  11f96261dc61b773253f722710c7d5806f53f32a (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=10e54d095de4c136589a588d10b7b68a79db289a
commit 10e54d095de4c136589a588d10b7b68a79db289a
Merge: 11f9626 42a17cc
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Fri Nov 1 07:18:07 2013 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Nov 1 07:18:07 2013 -0400

    Merge topic 'handle-only-plain-tll' into next
    
    42a17cc Ensure that LINK_LIBRARIES can be populated without tll.

diff --cc Source/cmTarget.cxx
index 1b09789,2bf8327..d305d95
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@@ -5180,8 -6395,28 +5180,28 @@@ void cmTarget::GetTransitivePropertyLin
  }
  
  //----------------------------------------------------------------------------
+ bool cmTarget::OnlyUsedWithPlainTLL() const
+ {
+   if (this->TLLCommands.empty())
+     {
+     return false;
+     }
+   typedef std::vector<std::pair<TLLSignature, cmListFileBacktrace> >
+                                                                 Container;
+   for(Container::const_iterator it = this->TLLCommands.begin();
+       it != this->TLLCommands.end(); ++it)
+     {
+     if (it->first == cmTarget::KeywordTLLSignature)
+       {
+       return false;
+       }
+     }
+   return true;
+ }
+ 
+ //----------------------------------------------------------------------------
  bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
 -                                    cmTarget *headTarget)
 +                                    cmTarget const* headTarget) const
  {
    // Construct the property name suffix for this configuration.
    std::string suffix = "_";

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42a17cc664d1c2d560df074a1c1c60d6d54ce2c5
commit 42a17cc664d1c2d560df074a1c1c60d6d54ce2c5
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Fri Nov 1 12:10:57 2013 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Nov 1 12:14:30 2013 +0100

    Ensure that LINK_LIBRARIES can be populated without tll.
    
    It should be allowed to use
    
     add_library(foo ...)
     add_library(bar ...)
     set_property(TARGET foo PROPERTY LINK_LIBRARIES bar)
    
    without causing bar to be in the exported INTERFACE_LINK_LIBRARIES
    of foo.

diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index d674aef..e37e15c 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -186,7 +186,7 @@ bool 
cmExportFileGenerator::PopulateInterfaceLinkLibrariesProperty(
                       std::vector<std::string> &missingTargets)
 {
   const char *input = target->GetProperty("INTERFACE_LINK_LIBRARIES");
-  if (!input)
+  if (!input && target->OnlyUsedWithPlainTLL())
     {
     // Only the plain target_link_libraries(foo bar) signature was
     // called so use the link implementation as the link interface.
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 221ca16..2bf8327 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6395,6 +6395,26 @@ void cmTarget::GetTransitivePropertyLinkLibraries(
 }
 
 //----------------------------------------------------------------------------
+bool cmTarget::OnlyUsedWithPlainTLL() const
+{
+  if (this->TLLCommands.empty())
+    {
+    return false;
+    }
+  typedef std::vector<std::pair<TLLSignature, cmListFileBacktrace> >
+                                                                Container;
+  for(Container::const_iterator it = this->TLLCommands.begin();
+      it != this->TLLCommands.end(); ++it)
+    {
+    if (it->first == cmTarget::KeywordTLLSignature)
+      {
+      return false;
+      }
+    }
+  return true;
+}
+
+//----------------------------------------------------------------------------
 bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
                                     cmTarget *headTarget)
 {
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 27b74ca..161f40b 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -196,6 +196,7 @@ public:
   };
   bool PushTLLCommandTrace(TLLSignature signature);
   void GetTllSignatureTraces(cmOStringStream &s, TLLSignature sig) const;
+  bool OnlyUsedWithPlainTLL() const;
 
   void MergeLinkLibraries( cmMakefile& mf, const char* selfname,
                            const LinkLibraryVectorType& libs );
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx 
b/Source/cmTargetLinkLibrariesCommand.cxx
index 5174f18..863b391 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -301,15 +301,6 @@ bool cmTargetLinkLibrariesCommand
     this->Target->SetProperty("LINK_INTERFACE_LIBRARIES", "");
     }
 
-  // Make sure INTERFACE_LINK_LIBRARIES target property exists
-  // if any signature except the plain one was used.  Other
-  // signatures imply awareness of explicit link interfaces.
-  if(this->CurrentProcessingState != ProcessingLinkLibraries &&
-     !this->Target->GetProperty("INTERFACE_LINK_LIBRARIES"))
-    {
-    this->Target->SetProperty("INTERFACE_LINK_LIBRARIES", "");
-    }
-
   return true;
 }
 

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

Summary of changes:
 Source/cmExportFileGenerator.cxx        |    2 +-
 Source/cmTarget.cxx                     |   20 ++++++++++++++++++++
 Source/cmTarget.h                       |    1 +
 Source/cmTargetLinkLibrariesCommand.cxx |    9 ---------
 4 files changed, 22 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to