[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