[gdal-dev] cmake status update - 99% good news!

Joaquim Manuel Freire Luís jluis at ualg.pt
Wed Jan 26 06:28:14 PST 2022


Some more news on this before I lose track of it.

Couldn't find a way to build against my HDF5 1.10.5 (everything I tried failed) so built HDF51.12.1 and now simple setting

set(HDF5_ROOT "C:/programs/compa_libs/hdf5-1.12.1/compileds/VC14_64")

finds it and no more troubles (yet found)

But I found two other new issues when adding more dependencies

1.
C:\programs\compa_libs\gdal_GIT\frmts\mbtiles\mbtilesdataset.cpp(45): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory

To work around this, I temporarily added zlib.h and zconf.h to frmts\mbtiles  

2.
C:\programs\compa_libs\libxml2-2.9.1\compileds\VC14_64\include\libxml/encoding.h(28): fatal error C1083: Cannot open include file: 'iconv.h': No such file or directory

Didn't try to find a fix to this one.

>
> HDF5 is a bit confusing. Here I use the same settings that I use to 
> build NetCDF, some settings are likely repeated but it works to build 
> netCDF
>
> set(HDF5_path C:/programs/compa_libs/hdf5-1.10.5)
> set(HDF5_ROOT_DIR ${HDF5_path}/compileds/VC14_64) 
> set(HDF5_INCLUDE_DIRS ${HDF5_path}/compileds/VC14_32/include)
> set(HDF5_LIBRARIES ${HDF5_path}/compileds/VC14_64/lib/hdf5.lib 	${HDF5_path}/compileds/VC14_64/lib/hdf5_hl.lib 	${HDF5_path}/compileds/VC14_${BITAGE}/lib/hdf5_hl_cpp.lib 	${HDF5_path}/compileds/VC14_${BITAGE}/lib/hdf5_cpp.lib)
> set(HDF5_HL_LIBRARIES ${HDF5_path}/compileds/VC14_64/lib/hdf5.lib 	${HDF5_path}/compileds/VC14_${BITAGE}/lib/hdf5_hl.lib 	${HDF5_path}/compileds/VC14_${BITAGE}/lib/hdf5_hl_cpp.lib 	${HDF5_path}/compileds/VC14_${BITAGE}/lib/hdf5_cpp.lib)
>
> but the build complains with
>
> -- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) 
> (found version "1.10.5")

GDAL use the FindHDF5.cmake module provided by CMake itself : 
https://cmake.org/cmake/help/latest/module/FindHDF5.html / https://github.com/Kitware/CMake/blob/master/Modules/FindHDF5.cmake

I doubt you can directly specify HDF5_INCLUDE_DIRS, HDF5_LIBRARIES and HDF5_HL_LIBRARIES as they are output variables of the FindHDF5 module, not input variables

I'd say you should rather set HDF5_ROOT=${HDF5_path}/compileds/VC14_64

You may instrument the FindHDF5.cmake file to have more details

>
>>> For ECW, it looks like I tested on Windows with ECW 5.5
> I use SDK 3.3 and
>
> -- Could NOT find ECW (missing: ECWnet_LIBRARY ECWC_LIBRARY 
> NCSUtil_LIBRARY) (found version "NCS_VERSION_NUMBER 3.3.0.161")

If you have a standard layout ( ${prefix}/include and ${prefix}/lib ) then specifying ECW_ROOT=${prefix} should normally work out of the box.

Logic is at
https://github.com/OSGeo/gdal/blob/master/cmake/modules/packages/FindECW.cmake

>
>> For MrSID, not sure I tested on Windows. Works on Linux with
> DSDK-9.5.4.4709-rhel6
>
> I don't really know what to set in this one. I have 
> MrSID_DSDK-8.5.0.3422, that works in the nmake build
>
> 	set(MRSID_INCLUDE_DIR "C:/programs/compa_libs/MrSID_DSDK-8.5.0.3422/compileds/VC14_64/include")
> 	set(MRSID_LIBRARY 
> "C:/programs/compa_libs/MrSID_DSDK-8.5.0.3422/compileds/VC14_64/lib/lt
> i_dsdk.lib")
Looks good. If you want to debug the logic, it is at https://github.com/OSGeo/gdal/blob/master/cmake/modules/packages/FindMRSID.cmake
> and get
>
> -- Could NOT find ECW (missing: ECWnet_LIBRARY ECWC_LIBRARY 
> NCSUtil_LIBRARY) (found version "NCS_VERSION_NUMBER 3.3.0.161")
That's not the right message

--
http://www.spatialys.com
My software is free, but my time generally not.



More information about the gdal-dev mailing list