On 08.05.2015 19:07, Huebl, Axel wrote:
> This commit adds VERSION support for HDF5 from
> the same sources as it adds the HDF5_IS_PARALLEL
> flag.
> 
> Previously posted on
>   https://github.com/Kitware/CMake/pull/153
> 
> and improved with feedback from
> 
>  - Brad King
>  - Rolf Eike Beer
> ---
>  Modules/FindHDF5.cmake | 19 ++++++++++++++++---
>  1 file changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake
> index 0d58e13..5f41b0f 100644
> --- a/Modules/FindHDF5.cmake
> +++ b/Modules/FindHDF5.cmake
> @@ -51,6 +51,7 @@
>  #                               bindings.
>  #   HDF5_LIBRARIES - Required libraries for all requested bindings
>  #   HDF5_FOUND - true if HDF5 was found on the system
> +#   HDF5_VERSION - HDF5 version in format Major.Minor.Release
>  #   HDF5_LIBRARY_DIRS - the full set of library directories
>  #   HDF5_IS_PARALLEL - Whether or not HDF5 was found with parallel IO
> support
>  #   HDF5_C_COMPILER_EXECUTABLE - the path to the HDF5 C wrapper compiler
> @@ -60,6 +61,7 @@
> 
>  
> #=============================================================================
>  # Copyright 2009 Kitware, Inc.
> +#           2015 Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
>  #
>  # Distributed under the OSI-approved BSD License (the "License");
>  # see accompanying file Copyright.txt for details.
> @@ -335,6 +337,7 @@ if( NOT HDF5_FOUND )
>      # If the HDF5 include directory was found, open H5pubconf.h to
> determine if
>      # HDF5 was compiled with parallel IO support
>      set( HDF5_IS_PARALLEL FALSE )
> +    set( HDF5_VERSION "" )
>      foreach( _dir IN LISTS HDF5_INCLUDE_DIRS )
>          if( EXISTS "${_dir}/H5pubconf.h" )
>              file( STRINGS "${_dir}/H5pubconf.h"
> @@ -343,6 +346,16 @@ if( NOT HDF5_FOUND )
>              if( HDF5_HAVE_PARALLEL_DEFINE )
>                  set( HDF5_IS_PARALLEL TRUE )
>              endif()
> +            unset(HDF5_HAVE_PARALLEL_DEFINE)
> +
> +            file( STRINGS "${_dir}/H5pubconf.h"
> +                HDF5_VERSION_DEFINE
> +                REGEX "^[ \t]*#[ \t]*define[ \t]+H5_VERSION[ \t]+" )
> +            if( "${HDF5_VERSION_DEFINE}" MATCHES
> +                "H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" )
> +                set( HDF5_VERSION "${CMAKE_MATCH_1}" )
> +            endif()
> +            unset(HDF5_VERSION_DEFINE)
>          endif()
>      endforeach()
>      set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL
> @@ -357,8 +370,8 @@ if( NOT HDF5_FOUND )
> 
>  endif()
> 
> -find_package_handle_standard_args( HDF5 DEFAULT_MSG
> -    HDF5_LIBRARIES
> -    HDF5_INCLUDE_DIRS
> +find_package_handle_standard_args( HDF5
> +    REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS
> +    VERSION_VAR   HDF5_VERSION
>  )
> 

I double checked some of the previous releases and pre-releases usually
take the format with appended "-something", e.g.
  1.8.10-patch1

One could skip the "subrelease" but still avoid breaking the configure
by looking for a H5_VERSION of format

   #define "X.Y.Z

(neglecting the last ").

> -            if( "${HDF5_VERSION_DEFINE}" MATCHES
> -                "H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" )
> +            if( "${HDF5_VERSION_DEFINE}" MATCHES
> +                "H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)" )


Any comments on that?


An other question:
  above the submitted patch is a "hdf5-config.cmake" section. Does it
need a specific update? (It's not touched for HDF5_IS_PARALLEL either).


Axel
-- 

Axel Huebl
Phone +49 351 260 3582
https://www.hzdr.de/crp
Computational Radiation Physics
Laser Particle Acceleration Division
Helmholtz-Zentrum Dresden - Rossendorf e.V.

Bautzner Landstrasse 400, 01328 Dresden
POB 510119, D-01314 Dresden
Vorstand: Prof. Dr.Dr.h.c. R. Sauerbrey
          Prof. Dr.Dr.h.c. P. Joehnk
VR 1693 beim Amtsgericht Dresden

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to