FindHDF5: Fix regression in per-configuration library selection
When FindHDF5 was first added in commite6734068
(Add HDF5 find module..., 2009-08-24) it contained a workaround for a bug in SelectLibraryConfigurations that did not transform lists correctly. That bug was fixed by commit5797512c
(SelectLibraryConfiguration: generate correct output when input vars are lists, 2012-07-28). Then refactoring in commit04d4dc33
(SelectLibraryConfigurations: Use -NOTFOUND instead of copying the vars, 2013-07-08) changed undocumented behavior on which the original workaround relied. The result puts entries like HDF5_hdf5_LIBRARY_DEBUG-NOTFOUND in HDF5_LIBRARIES. Fix this by dropping the original workaround since the underlying issue has been fixed anyway. Use the HDF5_${LIB}_LIBRARY selected by the call to select_library_configurations directly.
This commit is contained in:
parent
5e2b499485
commit
0f05961f03
|
@ -289,27 +289,13 @@ if( NOT HDF5_FOUND )
|
||||||
ENV HDF5_ROOT
|
ENV HDF5_ROOT
|
||||||
PATH_SUFFIXES lib Lib )
|
PATH_SUFFIXES lib Lib )
|
||||||
select_library_configurations( HDF5_${LIB} )
|
select_library_configurations( HDF5_${LIB} )
|
||||||
# even though we adjusted the individual library names in
|
list(APPEND HDF5_${LANGUAGE}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
|
||||||
# select_library_configurations, we still need to distinguish
|
|
||||||
# between debug and release variants because HDF5_LIBRARIES will
|
|
||||||
# need to specify different lists for debug and optimized builds.
|
|
||||||
# We can't just use the HDF5_${LIB}_LIBRARY variable (which was set
|
|
||||||
# up by the selection macro above) because it may specify debug and
|
|
||||||
# optimized variants for a particular library, but a list of
|
|
||||||
# libraries is allowed to specify debug and optimized only once.
|
|
||||||
list( APPEND HDF5_${LANGUAGE}_LIBRARIES_DEBUG
|
|
||||||
${HDF5_${LIB}_LIBRARY_DEBUG} )
|
|
||||||
list( APPEND HDF5_${LANGUAGE}_LIBRARIES_RELEASE
|
|
||||||
${HDF5_${LIB}_LIBRARY_RELEASE} )
|
|
||||||
endforeach()
|
endforeach()
|
||||||
list( APPEND HDF5_LIBRARY_DIRS ${HDF5_${LANGUAGE}_LIBRARY_DIRS} )
|
list( APPEND HDF5_LIBRARY_DIRS ${HDF5_${LANGUAGE}_LIBRARY_DIRS} )
|
||||||
|
|
||||||
# Append the libraries for this language binding to the list of all
|
# Append the libraries for this language binding to the list of all
|
||||||
# required libraries.
|
# required libraries.
|
||||||
list( APPEND HDF5_LIBRARIES_DEBUG
|
list(APPEND HDF5_LIBRARIES ${HDF5_${LANGUAGE}_LIBRARIES})
|
||||||
${HDF5_${LANGUAGE}_LIBRARIES_DEBUG} )
|
|
||||||
list( APPEND HDF5_LIBRARIES_RELEASE
|
|
||||||
${HDF5_${LANGUAGE}_LIBRARIES_RELEASE} )
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# We may have picked up some duplicates in various lists during the above
|
# We may have picked up some duplicates in various lists during the above
|
||||||
|
@ -329,30 +315,10 @@ if( NOT HDF5_FOUND )
|
||||||
if( HDF5_INCLUDE_DIRS )
|
if( HDF5_INCLUDE_DIRS )
|
||||||
_remove_duplicates_from_beginning( HDF5_INCLUDE_DIRS )
|
_remove_duplicates_from_beginning( HDF5_INCLUDE_DIRS )
|
||||||
endif()
|
endif()
|
||||||
if( HDF5_LIBRARIES_DEBUG )
|
|
||||||
_remove_duplicates_from_beginning( HDF5_LIBRARIES_DEBUG )
|
|
||||||
endif()
|
|
||||||
if( HDF5_LIBRARIES_RELEASE )
|
|
||||||
_remove_duplicates_from_beginning( HDF5_LIBRARIES_RELEASE )
|
|
||||||
endif()
|
|
||||||
if( HDF5_LIBRARY_DIRS )
|
if( HDF5_LIBRARY_DIRS )
|
||||||
_remove_duplicates_from_beginning( HDF5_LIBRARY_DIRS )
|
_remove_duplicates_from_beginning( HDF5_LIBRARY_DIRS )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Construct the complete list of HDF5 libraries with debug and optimized
|
|
||||||
# variants when the generator supports them.
|
|
||||||
if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
|
|
||||||
set( HDF5_LIBRARIES )
|
|
||||||
foreach( _lib ${HDF5_LIBRARIES_DEBUG} )
|
|
||||||
list( APPEND HDF5_LIBRARIES debug ${_lib} )
|
|
||||||
endforeach()
|
|
||||||
foreach( _lib ${HDF5_LIBRARIES_RELEASE} )
|
|
||||||
list( APPEND HDF5_LIBRARIES optimized ${_lib} )
|
|
||||||
endforeach()
|
|
||||||
else()
|
|
||||||
set( HDF5_LIBRARIES ${HDF5_LIBRARIES_RELEASE} )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# If the HDF5 include directory was found, open H5pubconf.h to determine if
|
# If the HDF5 include directory was found, open H5pubconf.h to determine if
|
||||||
# HDF5 was compiled with parallel IO support
|
# HDF5 was compiled with parallel IO support
|
||||||
set( HDF5_IS_PARALLEL FALSE )
|
set( HDF5_IS_PARALLEL FALSE )
|
||||||
|
|
Loading…
Reference in New Issue