Re: [cmake-developers] [PATCH] FindHDF5.cmake HDF5_VERSION Support
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
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
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