[Cmake-commits] CMake branch, next, updated. v3.0.0-rc5-3192-g4c5a349

Brad King brad.king at kitware.com
Mon May 19 09:06:48 EDT 2014


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  4c5a3493edce6e19ba936372a04a6adb953ab578 (commit)
       via  42bbf1307a927e19f1ac937b14301e878370c6b6 (commit)
      from  15db64e834f175212e4204928c19b3738e1fad3c (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=4c5a3493edce6e19ba936372a04a6adb953ab578
commit 4c5a3493edce6e19ba936372a04a6adb953ab578
Merge: 15db64e 42bbf13
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon May 19 09:06:47 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon May 19 09:06:47 2014 -0400

    Merge topic 'fix-CMP0022-language-propagation' into next
    
    42bbf130 CMP0022: Fix link language propagation in NEW behavior


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42bbf1307a927e19f1ac937b14301e878370c6b6
commit 42bbf1307a927e19f1ac937b14301e878370c6b6
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri May 16 14:19:22 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon May 19 09:06:20 2014 -0400

    CMP0022: Fix link language propagation in NEW behavior
    
    The languages used in compiling STATIC libraries need to be propagated
    to dependents regardless of the settings of INTERFACE_LINK_LIBRARIES or
    CMP0022.  They are independent of the libraries in the link interface.
    
    Prior to commit v2.8.12~192^2~2 (Introduce the INTERFACE_LINK_LIBRARIES
    property, 2013-06-04) the cmTarget::ComputeLinkInterface code path for
    "explicitLibraries" could never be taken for STATIC libraries, so the
    logic to propagate languages existed only in the non-explicitLibraries
    code path.  After that commit, INTERFACE_LINK_LIBRARIES could be set for
    STATIC libraries to cause the "explicitLibraries" code path to be taken.
    The commit also left the old non-explicitLibraries code path conditional
    on CMP0022 not being set to NEW.  Thus link language propagation was
    left missing from two cases by that commit.
    
    The explicitLibraries code path was fixed to propagate languages by
    commit v2.8.12~149^2~1 (cmTarget: Fix iface libraries and languages for
    static libraries, 2013-07-26).  However, the non-explicitLibraries case
    was never taught to propagate languages when CMP0022 is set to NEW.  Fix
    that now.  Factor the logic to propagate link languages out of the link
    interface libraries conditions so that it always occurs.  Update
    Tests/Fortran to set CMP0022 to NEW to test this case (because the test
    passes only if link language propagation works).

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 3f2ae9e..a243de5 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6481,11 +6481,6 @@ void cmTargetInternals::ComputeLinkInterface(cmTarget const* thisTarget,
               }
             }
           }
-        if(thisTarget->LinkLanguagePropagatesToDependents())
-          {
-          // Targets using this archive need its language runtime libraries.
-          iface.Languages = impl->Languages;
-          }
         }
       }
     }
@@ -6497,9 +6492,14 @@ void cmTargetInternals::ComputeLinkInterface(cmTarget const* thisTarget,
                 impl = thisTarget->GetLinkImplementation(config, headTarget);
     iface.ImplementationIsInterface = true;
     iface.WrongConfigLibraries = impl->WrongConfigLibraries;
-    if(thisTarget->LinkLanguagePropagatesToDependents())
+    }
+
+  if(thisTarget->LinkLanguagePropagatesToDependents())
+    {
+    // Targets using this archive need its language runtime libraries.
+    if(cmTarget::LinkImplementation const* impl =
+       thisTarget->GetLinkImplementation(config, headTarget))
       {
-      // Targets using this archive need its language runtime libraries.
       iface.Languages = impl->Languages;
       }
     }
diff --git a/Tests/Fortran/CMakeLists.txt b/Tests/Fortran/CMakeLists.txt
index bf6d629..ef3b317 100644
--- a/Tests/Fortran/CMakeLists.txt
+++ b/Tests/Fortran/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.6)
+cmake_minimum_required (VERSION 3.0)
 project(testf C CXX Fortran)
 if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
   set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list