[cmake-developers] [PATCH v2] FindHDF5.cmake HDF5_VERSION Support
Rolf Eike Beer
eike at sf-mail.de
Mon May 11 04:51:03 EDT 2015
Am 11.05.2015 10:29, schrieb Huebl, Axel:
> 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
>> @@ -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
>
> 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?
Then I would change the regex to:
"H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+[^"]*)"
This would include whatever comes next into the visible string, but
CMake should be able to deal with that just fine (please check, as you
seem to have the versions available).
Eike
--
More information about the cmake-developers
mailing list