[PATCH 2/2] SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars

Daniele E. Domenichelli daniele.domenichelli at iit.it
Mon Jul 8 11:37:18 EDT 2013


---
 Modules/SelectLibraryConfigurations.cmake |   58 ++++++++++++-----------------
 1 file changed, 23 insertions(+), 35 deletions(-)

diff --git a/Modules/SelectLibraryConfigurations.cmake b/Modules/SelectLibraryConfigurations.cmake
index f475d87..eebaf90 100644
--- a/Modules/SelectLibraryConfigurations.cmake
+++ b/Modules/SelectLibraryConfigurations.cmake
@@ -31,48 +31,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()
-- 
1.7.10.4


--------------040509070101050400020803--


More information about the cmake-developers mailing list