[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3280-g52fc21a

Brad King brad.king at kitware.com
Mon Jul 22 09:42:24 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  52fc21ab2bf96a8e6e7ec134c56ff58ee0f92fe4 (commit)
       via  04d4dc33746710dd8a53a5f9575a324070c0fa0c (commit)
      from  8e1dcc15c4487e802f67c9d38607ca26349541d2 (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=52fc21ab2bf96a8e6e7ec134c56ff58ee0f92fe4
commit 52fc21ab2bf96a8e6e7ec134c56ff58ee0f92fe4
Merge: 8e1dcc1 04d4dc3
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Jul 22 09:42:18 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jul 22 09:42:18 2013 -0400

    Merge topic 'SelectLibraryConfigurations' into next
    
    04d4dc3 SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=04d4dc33746710dd8a53a5f9575a324070c0fa0c
commit 04d4dc33746710dd8a53a5f9575a324070c0fa0c
Author:     Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Mon Jul 8 17:37:18 2013 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Jul 22 09:37:33 2013 -0400

    SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars
    
    If one of the libraries (_DEBUG or _RELEASE) is not set, the value is
    set to the value of the other one.  FindQt4, from which the macro is
    extracted, sets the values to XXX_LIBRARY_{DEBUG,RELEASE}-NOTFOUND
    instead.  In both cases the XXX_LIBRARY is correct, but using NOTFOUND
    makes it easier to understand which one is missing.
    
    Update Tests/CMakeOnly/SelectLibraryConfigurations with the new logic.

diff --git a/Modules/SelectLibraryConfigurations.cmake b/Modules/SelectLibraryConfigurations.cmake
index f475d87..297e1d3 100644
--- a/Modules/SelectLibraryConfigurations.cmake
+++ b/Modules/SelectLibraryConfigurations.cmake
@@ -3,16 +3,18 @@
 # This macro takes a library base name as an argument, and will choose good
 # values for basename_LIBRARY, basename_LIBRARIES, basename_LIBRARY_DEBUG, and
 # basename_LIBRARY_RELEASE depending on what has been found and set.  If only
-# basename_LIBRARY_RELEASE is defined, basename_LIBRARY, basename_LIBRARY_DEBUG,
-# and basename_LIBRARY_RELEASE will be set to the release value.  If only
-# basename_LIBRARY_DEBUG is defined, then basename_LIBRARY,
-# basename_LIBRARY_DEBUG and basename_LIBRARY_RELEASE will take the debug value.
+# basename_LIBRARY_RELEASE is defined, basename_LIBRARY will be set to the
+# release value, and basename_LIBRARY_DEBUG will be set to
+# basename_LIBRARY_DEBUG-NOTFOUND.  If only basename_LIBRARY_DEBUG is defined,
+# then basename_LIBRARY will take the debug value, and basename_LIBRARY_RELEASE
+# will be set to basename_LIBRARY_RELEASE-NOTFOUND.
 #
 # If the generator supports configuration types, then basename_LIBRARY and
 # basename_LIBRARIES will be set with debug and optimized flags specifying the
 # library to be used for the given configuration.  If no build type has been set
 # or the generator in use does not support configuration types, then
-# basename_LIBRARY and basename_LIBRARIES will take only the release values.
+# basename_LIBRARY and basename_LIBRARIES will take only the release value, or
+# the debug value if the release one is not set.
 
 #=============================================================================
 # Copyright 2009 Will Dicharry <wdicharry at stellarscience.com>
@@ -31,48 +33,36 @@
 # This macro was adapted from the FindQt4 CMake module and is maintained by Will
 # Dicharry <wdicharry at stellarscience.com>.
 
-# Utility macro to check if one variable exists while another doesn't, and set
-# one that doesn't exist to the one that exists.
-macro( _set_library_name basename GOOD BAD )
-    if( ${basename}_LIBRARY_${GOOD} AND NOT ${basename}_LIBRARY_${BAD} )
-        set( ${basename}_LIBRARY_${BAD} ${${basename}_LIBRARY_${GOOD}} )
-        set( ${basename}_LIBRARY ${${basename}_LIBRARY_${GOOD}} )
-        set( ${basename}_LIBRARIES ${${basename}_LIBRARY_${GOOD}} )
-    endif()
-endmacro()
-
 macro( select_library_configurations basename )
-    # if only the release version was found, set the debug to be the release
-    # version.
-    _set_library_name( ${basename} RELEASE DEBUG )
-    # if only the debug version was found, set the release value to be the
-    # debug value.
-    _set_library_name( ${basename} DEBUG RELEASE )
-
-    # Set a default case, which will come into effect if
-    # -no build type is set and the generator only supports one build type
-    #  at a time (i.e. CMAKE_CONFIGURATION_TYPES is false)
-    # -${basename}_LIBRARY_DEBUG and ${basename}_LIBRARY_RELEASE are the same
-    # -${basename}_LIBRARY_DEBUG and ${basename}_LIBRARY_RELEASE are both empty
-    set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
-    set( ${basename}_LIBRARIES ${${basename}_LIBRARY_RELEASE} )
+    if(NOT ${basename}_LIBRARY_RELEASE)
+        set(${basename}_LIBRARY_RELEASE "${basename}_LIBRARY_RELEASE-NOTFOUND" CACHE FILEPATH "Path to a library.")
+    endif()
+    if(NOT ${basename}_LIBRARY_DEBUG)
+        set(${basename}_LIBRARY_DEBUG "${basename}_LIBRARY_DEBUG-NOTFOUND" CACHE FILEPATH "Path to a library.")
+    endif()
 
     if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND
-           NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE )
+           NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE AND
+           ( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE ) )
         # if the generator supports configuration types or CMAKE_BUILD_TYPE
         # is set, then set optimized and debug options.
-        if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
-            set( ${basename}_LIBRARY "" )
-            foreach( _libname IN LISTS ${basename}_LIBRARY_RELEASE )
-                list( APPEND ${basename}_LIBRARY optimized "${_libname}" )
-            endforeach()
-            foreach( _libname IN LISTS ${basename}_LIBRARY_DEBUG )
-                list( APPEND ${basename}_LIBRARY debug "${_libname}" )
-            endforeach()
-            set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" )
-        endif()
+        set( ${basename}_LIBRARY "" )
+        foreach( _libname IN LISTS ${basename}_LIBRARY_RELEASE )
+            list( APPEND ${basename}_LIBRARY optimized "${_libname}" )
+        endforeach()
+        foreach( _libname IN LISTS ${basename}_LIBRARY_DEBUG )
+            list( APPEND ${basename}_LIBRARY debug "${_libname}" )
+        endforeach()
+    elseif( ${basename}_LIBRARY_RELEASE )
+        set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
+    elseif( ${basename}_LIBRARY_DEBUG )
+        set( ${basename}_LIBRARY ${${basename}_LIBRARY_DEBUG} )
+    else()
+        set( ${basename}_LIBRARY "${basename}_LIBRARY-NOTFOUND")
     endif()
 
+    set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" )
+
     if( ${basename}_LIBRARY )
         set( ${basename}_FOUND TRUE )
     endif()
diff --git a/Tests/CMakeOnly/SelectLibraryConfigurations/CMakeLists.txt b/Tests/CMakeOnly/SelectLibraryConfigurations/CMakeLists.txt
index 5bf0f8a..6d1628a 100644
--- a/Tests/CMakeOnly/SelectLibraryConfigurations/CMakeLists.txt
+++ b/Tests/CMakeOnly/SelectLibraryConfigurations/CMakeLists.txt
@@ -29,7 +29,7 @@ if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
   set(CMAKE_BUILD_TYPE Debug)
 endif ()
 
-check_slc(empty "")
+check_slc(empty "empty_LIBRARY-NOTFOUND")
 
 set(OPTONLY_LIBRARY_RELEASE "opt")
 check_slc(OPTONLY "opt")

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list