Dear Group,

Our software product currently builds with CMake 3.26.5, PROJ 9.6.0, GDAL 
3.10.3, TIFF 4.7.0, GeoTIFF 1.7.4 etc.

I am obliged to update to at least CMake 3.30.4 in order to be able to use the 
CMake scripts for a new dependent library, which I am told has enough build 
trickiness that trying to use it without those scripts will be a major PITA.

Turns out that the newer CMake is a lot more demanding in terms of 
sub-dependency find_package() calls. For example, the find_package(TIFF 
REQUIRED) in PROJ fails because it can't find LZMA, ZSTD, ZLIB, WebP and CMath. 
Adding find_package() calls for those before the one for TIFF seems to work, 
but some of those only work if you have the matching Find<foo>.cmake scripts, 
many of which aren't provided in the standard CMake set, but have to be copied 
or referenced from those provided by TIFF.

Either that, or it's not clear to me which version of the Find script or 
library name is required. For example, TIFF apparently requires lzma::lzma but 
there isn't a script for that, only for LibLZMA::LibLZMA.

Does anyone have any tricks or recommendations on how to resolve this in the 
cleanest manner. I am trying to hack through it by patching (say) the various 
CMakeLists.txt files for the above projects to add the now-required 
find_package() calls, and copying scripts from the TIFF deployment into CMake 
Modules but it seems very wrong.

I don't see anything in the more recent release notes for any of those packages 
which indicates that there is a newer version which is more compatible with the 
newer CMake. Most of the issues stem from TIFF, where the only newer version is 
4.7.1 which certainly does not help.
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to