Re: [cmake-developers] [PATCH] FindHDF5.cmake HDF5_VERSION Support

2015-05-08 Thread Huebl, Axel
On 08.05.2015 17:52, Rolf Eike Beer wrote:
> Huebl, Axel wrote:
>> This commit adds VERSION support for HDF5 from
>> the same sources as it adds the HDF5_IS_PARALLEL
>> flag.
> 
>> @@ -343,6 +346,14 @@ if( NOT HDF5_FOUND )
>>  if( HDF5_HAVE_PARALLEL_DEFINE )
>>  set( HDF5_IS_PARALLEL TRUE )
>>  endif()
>> +
>> +file( STRINGS "${_dir}/H5pubconf.h"
>> +HDF5_VERSION_DEFINE
>> +REGEX "#define H5_VERSION" )
> 
> I suggest using "#define[ \t]+H5_VERSION[ \t]+": this works also on changed 
> indendation and does not accidentially match H5_VERSION_FOO.
> 
>> +if( "${HDF5_VERSION_DEFINE}" MATCHES
>> +"H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" )
>> +set( HDF5_VERSION "${CMAKE_MATCH_1}" )
>> +endif()
> 
> please unset HDF5_VERSION_DEFINE here.
> 
> Greetings,
> 
> Eike
> 

Thank you for the feedback.

Good points, I agree!
Shall I unset HDF5_HAVE_PARALLEL_DEFINE for sake of consistency, too?

The second regex should avoid matching "H5_VERSION_FOO" anyway, even if
it would include several lines in the beginning.

More general would be
  "^[ \t]*#[ \t]*define[ \t]+H5_VERSION[ \t]+"

but the question will be how far we should obfuscate it, I guess :)


Greetings,
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



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

Re: [cmake-developers] [PATCH] FindHDF5.cmake HDF5_VERSION Support

2015-05-08 Thread Rolf Eike Beer
Huebl, Axel wrote:
> This commit adds VERSION support for HDF5 from
> the same sources as it adds the HDF5_IS_PARALLEL
> flag.

> @@ -343,6 +346,14 @@ if( NOT HDF5_FOUND )
>  if( HDF5_HAVE_PARALLEL_DEFINE )
>  set( HDF5_IS_PARALLEL TRUE )
>  endif()
> +
> +file( STRINGS "${_dir}/H5pubconf.h"
> +HDF5_VERSION_DEFINE
> +REGEX "#define H5_VERSION" )

I suggest using "#define[ \t]+H5_VERSION[ \t]+": this works also on changed 
indendation and does not accidentially match H5_VERSION_FOO.

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

please unset HDF5_VERSION_DEFINE here.

Greetings,

Eike

signature.asc
Description: This is a digitally signed message part.
-- 

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

[cmake-developers] [PATCH] FindHDF5.cmake HDF5_VERSION Support

2015-05-08 Thread Huebl, Axel
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 (thx!).
---
 Modules/FindHDF5.cmake | 17 ++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake
index 0d58e13..69f31ed 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,14 @@ if( NOT HDF5_FOUND )
 if( HDF5_HAVE_PARALLEL_DEFINE )
 set( HDF5_IS_PARALLEL TRUE )
 endif()
+
+file( STRINGS "${_dir}/H5pubconf.h"
+HDF5_VERSION_DEFINE
+REGEX "#define H5_VERSION" )
+if( "${HDF5_VERSION_DEFINE}" MATCHES
+"H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\"" )
+set( HDF5_VERSION "${CMAKE_MATCH_1}" )
+endif()
 endif()
 endforeach()
 set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL
@@ -357,8 +368,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
 )

-- 
2.1.4



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