[opengm] 344/386: chaged find hdf5 script

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Aug 31 08:38:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch debian/master
in repository opengm.

commit b5da108b9fb32e91a2e349a15958fd1b585465b6
Author: DerThorsten <thorsten.beier at iwr.uni-heidelberg.de>
Date:   Fri Mar 25 14:03:16 2016 +0100

    chaged find hdf5 script
---
 cmake/modules/FindHDF5.cmake     | 130 ++++++++++++++++++++++++---------------
 cmake/modules/checkHDF5version.c |   8 ++-
 2 files changed, 84 insertions(+), 54 deletions(-)

diff --git a/cmake/modules/FindHDF5.cmake b/cmake/modules/FindHDF5.cmake
index e311912..4bc92db 100644
--- a/cmake/modules/FindHDF5.cmake
+++ b/cmake/modules/FindHDF5.cmake
@@ -1,68 +1,96 @@
 # - Find HDF5, a library for reading and writing self describing array data.
 #
-FIND_PATH(HDF5_INCLUDE_DIR hdf5.h)
 
-FIND_LIBRARY(HDF5_CORE_LIBRARY NAMES hdf5dll hdf5  )
-FIND_LIBRARY(HDF5_HL_LIBRARY NAMES hdf5_hldll hdf5_hl  )
-FIND_LIBRARY(HDF5_CPP_LIBRARY NAMES hdf5_cppdll hdf5_cpp )
+FIND_PATH(HDF5_INCLUDE_DIR hdf5.h PATH_SUFFIXES hdf5/serial)
 
-IF(WIN32 AND HDF5_CORE_LIBRARY MATCHES "dll.lib$")
-    SET(HDF5_CFLAGS "-D_HDF5USEDLL_")
-    SET(HDF5_CPPFLAGS "-D_HDF5USEDLL_ -DHDF5CPP_USEDLL")
-ELSE()
-    SET(HDF5_CFLAGS)
-    SET(HDF5_CPPFLAGS)
-ENDIF()
+if(HDF5_INCLUDE_DIR)
+    SET(HDF5_TRY_COMPILE_INCLUDE_DIR "-DINCLUDE_DIRECTORIES:STRING=${HDF5_INCLUDE_DIR}")
 
-SET(HDF5_VERSION_MAJOR 1)
-SET(HDF5_VERSION_MINOR 8)
+    set(HDF5_SUFFICIENT_VERSION FALSE)
+    TRY_COMPILE(HDF5_SUFFICIENT_VERSION
+                ${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/modules/checkHDF5version.c
+                CMAKE_FLAGS "${HDF5_TRY_COMPILE_INCLUDE_DIR}")
 
-set(HDF5_SUFFICIENT_VERSION FALSE)
+    if(NOT HDF5_SUFFICIENT_VERSION)
+        MESSAGE(STATUS "   HDF5: unable to compile a simple test program.\n      (include path: '${HDF5_INCLUDE_DIR}')" )
+    else()
+        SET(HDF5_VERSION_MAJOR 1)
+        SET(HDF5_VERSION_MINOR 8)
+        set(HDF5_SUFFICIENT_VERSION FALSE)
+        TRY_COMPILE(HDF5_SUFFICIENT_VERSION
+                    ${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/modules/checkHDF5version.c
+                    COMPILE_DEFINITIONS "-DCHECK_VERSION=1 -DMIN_MAJOR=${HDF5_VERSION_MAJOR} -DMIN_MINOR=${HDF5_VERSION_MINOR}"
+                    CMAKE_FLAGS "${HDF5_TRY_COMPILE_INCLUDE_DIR}")
 
-TRY_COMPILE(HDF5_SUFFICIENT_VERSION
-            ${CMAKE_BINARY_DIR} ${CMAKE_MODULE_PATH}/checkHDF5version.c
-            COMPILE_DEFINITIONS "-I\"${HDF5_INCLUDE_DIR}\" -DMIN_MAJOR=${HDF5_VERSION_MAJOR} -DMIN_MINOR=${HDF5_VERSION_MINOR}")
+        if(NOT HDF5_SUFFICIENT_VERSION)
+            MESSAGE(STATUS "   HDF5: need at least version ${HDF5_VERSION_MAJOR}.${HDF5_VERSION_MINOR}" )
+        else()
+            MESSAGE(STATUS
+                   "   Checking HDF5 version (at least ${HDF5_VERSION_MAJOR}.${HDF5_VERSION_MINOR}): ok")
+        endif()
+    endif()
 
-if(HDF5_SUFFICIENT_VERSION)
-    MESSAGE(STATUS
-           "Checking HDF5 version (at least ${HDF5_VERSION_MAJOR}.${HDF5_VERSION_MINOR}): ok")
-else()
-    MESSAGE( STATUS "HDF5: need at least version ${HDF5_VERSION_MAJOR}.${HDF5_VERSION_MINOR}" )
-endif()
+    # Only configure HDF5 if a suitable version of the library was found
+    if(HDF5_SUFFICIENT_VERSION)
 
-set(HDF5_USES_ZLIB FALSE)
-TRY_COMPILE(HDF5_USES_ZLIB
-           ${CMAKE_BINARY_DIR} ${CMAKE_MODULE_PATH}/checkHDF5usesCompression.c
-           COMPILE_DEFINITIONS "-I\"${HDF5_INCLUDE_DIR}\" -DH5_SOMETHING=H5_HAVE_FILTER_DEFLATE")
-        
-if(HDF5_USES_ZLIB)
-    FIND_LIBRARY(HDF5_Z_LIBRARY NAMES zlib1 zlib z )
-    set(HDF5_ZLIB_OK ${HDF5_Z_LIBRARY})
-else()
-    set(HDF5_ZLIB_OK TRUE)
-    set(HDF5_Z_LIBRARY "")
-endif()
+        FIND_LIBRARY(HDF5_CORE_LIBRARY NAMES hdf5dll hdf5 PATH_SUFFIXES hdf5/serial )
+        FIND_LIBRARY(HDF5_HL_LIBRARY NAMES hdf5_hldll hdf5_hl PATH_SUFFIXES hdf5/serial )
 
-set(HDF5_USES_SZLIB FALSE)
-TRY_COMPILE(HDF5_USES_SZLIB 
-            ${CMAKE_BINARY_DIR} ${CMAKE_MODULE_PATH}/checkHDF5usesCompression.c
-            COMPILE_DEFINITIONS "-I\"${HDF5_INCLUDE_DIR}\" -DH5_SOMETHING=H5_HAVE_FILTER_SZIP")
-        
-if(HDF5_USES_SZLIB)
-    FIND_LIBRARY(HDF5_SZ_LIBRARY NAMES szlibdll sz )
-    set(HDF5_SZLIB_OK ${HDF5_SZ_LIBRARY})
-else()
-    set(HDF5_SZLIB_OK TRUE)
-    set(HDF5_SZ_LIBRARY "")
+        # FIXME: as of version 1.8.9 and 1.8.10-patch1 (but NOT 1.8.10), these flags are
+        #        already set correctly => remove or set conditionally according to version
+        IF(WIN32 AND HDF5_CORE_LIBRARY MATCHES "dll.lib$")
+            SET(HDF5_CFLAGS "-D_HDF5USEDLL_")
+            SET(HDF5_CPPFLAGS "-D_HDF5USEDLL_ -DHDF5CPP_USEDLL")
+        ELSE()
+            SET(HDF5_CFLAGS)
+            SET(HDF5_CPPFLAGS)
+        ENDIF()
+
+        set(HDF5_USES_ZLIB FALSE)
+        TRY_COMPILE(HDF5_USES_ZLIB
+                   ${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/modules/checkHDF5usesCompression.c
+                   COMPILE_DEFINITIONS "-DH5_SOMETHING=H5_HAVE_FILTER_DEFLATE"
+                   CMAKE_FLAGS "${HDF5_TRY_COMPILE_INCLUDE_DIR}")
+
+        if(HDF5_USES_ZLIB)
+            FIND_LIBRARY(HDF5_Z_LIBRARY NAMES zlib1 zlib z )
+            set(HDF5_ZLIB_OK ${HDF5_Z_LIBRARY})
+        else()
+            set(HDF5_ZLIB_OK TRUE)
+            set(HDF5_Z_LIBRARY "")
+        endif()
+
+        set(HDF5_USES_SZLIB FALSE)
+        TRY_COMPILE(HDF5_USES_SZLIB
+                    ${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/modules/checkHDF5usesCompression.c
+                    COMPILE_DEFINITIONS "-DH5_SOMETHING=H5_HAVE_FILTER_SZIP"
+                    CMAKE_FLAGS "${HDF5_TRY_COMPILE_INCLUDE_DIR}")
+
+        if(HDF5_USES_SZLIB)
+            FIND_LIBRARY(HDF5_SZ_LIBRARY NAMES szlibdll sz szip)
+            set(HDF5_SZLIB_OK ${HDF5_SZ_LIBRARY})
+        else()
+            set(HDF5_SZLIB_OK TRUE)
+            set(HDF5_SZ_LIBRARY "")
+        endif()
+    endif()
 endif()
 
-# handle the QUIETLY and REQUIRED arguments and set HDF5_FOUND to TRUE if 
+# handle the QUIETLY and REQUIRED arguments and set HDF5_FOUND to TRUE if
 # all listed variables are TRUE
 INCLUDE(FindPackageHandleStandardArgs)
 
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG HDF5_CORE_LIBRARY 
-        HDF5_HL_LIBRARY HDF5_ZLIB_OK HDF5_SZLIB_OK HDF5_INCLUDE_DIR HDF5_SUFFICIENT_VERSION)
-        
+if(NOT HDF5_INCLUDE_DIR)
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG HDF5_INCLUDE_DIR)
+elseif(NOT HDF5_SUFFICIENT_VERSION)
+    # undo unsuccessful configuration
+    set(HDF5_INCLUDE_DIR "")
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG HDF5_SUFFICIENT_VERSION)
+else()
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG HDF5_CORE_LIBRARY
+        HDF5_HL_LIBRARY HDF5_ZLIB_OK HDF5_SZLIB_OK HDF5_INCLUDE_DIR)
+endif()
+
 IF(HDF5_FOUND)
     SET(HDF5_LIBRARIES ${HDF5_CORE_LIBRARY} ${HDF5_HL_LIBRARY} ${HDF5_Z_LIBRARY} ${HDF5_SZ_LIBRARY})
 ELSE()
@@ -71,4 +99,4 @@ ELSE()
     SET(HDF5_Z_LIBRARY    HDF5_Z_LIBRARY-NOTFOUND)
     SET(HDF5_SZ_LIBRARY   HDF5_SZ_LIBRARY-NOTFOUND)
 ENDIF(HDF5_FOUND)
-    
+
diff --git a/cmake/modules/checkHDF5version.c b/cmake/modules/checkHDF5version.c
index 7906980..a9a7b3b 100644
--- a/cmake/modules/checkHDF5version.c
+++ b/cmake/modules/checkHDF5version.c
@@ -1,8 +1,10 @@
 #include <hdf5.h>
 
-#if (H5_VERS_MAJOR < MIN_MAJOR) || \
-   ((H5_VERS_MAJOR == MIN_MAJOR) && (H5_VERS_MINOR < MIN_MINOR))
-#error "insufficient HDF5 version"
+#if defined(CHECK_VERSION)
+# if (H5_VERS_MAJOR < MIN_MAJOR) || \
+     ((H5_VERS_MAJOR == MIN_MAJOR) && (H5_VERS_MINOR < MIN_MINOR))
+#  error "insufficient HDF5 version"
+# endif
 #endif
 
 int main()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opengm.git



More information about the debian-science-commits mailing list