From b03fd6777a4513aa6e6fa526d9e4a42228e22906 Mon Sep 17 00:00:00 2001
From: John Biddiscombe <biddisco@cscs.ch>
Date: Thu, 25 Apr 2013 12:51:12 +0200
Subject: [PATCH] Fix some problems with FindHDF5 with windows shared libs

---
 Modules/FindHDF5.cmake | 42 +++++++++++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake
index 8514164..753d399 100644
--- a/Modules/FindHDF5.cmake
+++ b/Modules/FindHDF5.cmake
@@ -187,21 +187,33 @@ if( NOT HDF5_FOUND )
     find_package( HDF5 QUIET NO_MODULE )
     if( HDF5_FOUND )
         set( HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR} )
-        set( HDF5_LIBRARIES )
-        set( HDF5_C_TARGET hdf5 )
-        set( HDF5_CXX_TARGET hdf5_cpp )
-        set( HDF5_HL_TARGET hdf5_hl )
-        set( HDF5_Fortran_TARGET hdf5_fortran )
-        set( HDF5_Fortran_HL_TARGET hdf5_hl_fortran )
-        foreach( _component ${HDF5_LANGUAGE_BINDINGS} )
-            list( FIND HDF5_VALID_COMPONENTS ${_component} _component_location )
-            get_target_property( _comp_location ${HDF5_${_component}_TARGET} LOCATION )
-            if( _comp_location )
-                set( HDF5_${_component}_LIBRARY ${_comp_location} CACHE PATH
-                    "HDF5 ${_component} library" )
-                mark_as_advanced( HDF5_${_component}_LIBRARY )
-                list( APPEND HDF5_LIBRARIES ${HDF5_${_component}_LIBRARY} )
-            endif()
+        set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL} )
+        set(HDF5_C_LIBRARIES hdf5)
+        set(HDF5_CXX_LIBRARIES hdf5_cpp)
+        set(HDF5_HL_LIBRARIES hdf5_hl)
+        set(HDF5_FORTRAN_LIBRARIES hdf5_fortran)
+        foreach( _component ${HDF5_LIBRARIES} )            
+            get_target_property( _configs ${_component} IMPORTED_CONFIGURATIONS )
+            get_target_property( _type ${_component} TYPE )
+            foreach( _config ${_configs} )
+                if (${_type} MATCHES "LIBRARY")
+                    if (${_type} MATCHES "SHARED")
+                        get_target_property( _comp_location ${_component} IMPORTED_IMPLIB_${_config} )
+                    else()
+                        get_target_property( _comp_location ${_component} LOCATION_${_config} )
+                    endif (${_type} MATCHES "SHARED")
+                endif (${_type} MATCHES "LIBRARY")
+                string(TOUPPER ${_component} _name)
+                # message("Generated name is ${_name}_LIBRARY_${_config} = ${_comp_location}") 
+                if( _comp_location )
+                    set( ${_name}_LIBRARY_${_config} ${_comp_location} CACHE PATH
+                        "${_name}_LIBRARY_${_config} library" )
+                    mark_as_advanced( HDF5_${_component}_LIBRARY )
+                    list( APPEND HDF5_LIBRARIES ${HDF5_${_component}_LIBRARY} )
+                endif()
+            endforeach()
+            
+            message(" ")
         endforeach()
     endif()
 endif()
-- 
1.7.11.msysgit.1

