Hallo!

> On 23. Nov 2023, at 18:12, Javier Jimenez Shaw via gdal-dev 
> <gdal-dev@lists.osgeo.org> wrote:
> 
> My colleague (I have only Linux) will give more info.

I am that colleague.

> 
> On Thu, 23 Nov 2023 at 16:25, Even Rouault <even.roua...@spatialys.com> wrote:
> 
>>> 
>>> I thought that it was enough disabling GDAL_USE_EXTERNAL_LIBS (we are not 
>>> enabling explicitly arrow or kml). Am I wrong?
>> He might have to remove CMakeCache.txt because it could contain the 
>> GDAL_USE_LIBKML=ON declaration that was set before turning off 
>> GDAL_USE_EXTERNAL_LIBS
>> He started from an empty directory.
>> 
>> We are using conan, that is python, and setting GDAL_USE_EXTERNAL_LIBS=False 
>> . This is the result after searching for that string:
> and what is the value of GDAL_USE_LIBKML and GDAL_USE_ARROW ? and what is the 
> exact error message?

I have re-tested everything, and at the moment I can only reproduce the libkml 
problem. It is that GDAL_USE_EXTERNAL_LIBS=OFF is not respected by the 
configuration for that library.

Longer version: We use

> GDAL_USE_EXTERNAL_LIBS:BOOL=False

with the intention that no external libraries are used unless requested 
explicitly. This works fine for other libraries. (E.g. "-- ARROW has been 
found, but is disabled due to GDAL_USE_EXTERNAL_LIBS=OFF. Enable it by setting 
GDAL_USE_ARROW=ON”. The detection for some of those libraries produced 
warnings, though, maybe there were actual errors in the past.) However, 
GDAL_USE_LIBKML seems not to respect that, and it still ends up ON in case that 
I happen to have it installed. This then also triggers 
OGR_ENABLE_DRIVER_LIBKML=ON.

Now it so happens that compilation then fails because of a version mismatch 
between the Boost version that the libkml that I have installed via homebrew 
expects and the Boost that I told GDAL to use, but that’s not the main problem. 
Even if it would compile, we would not want the result of the GDAL build depend 
on whether libkml is installed somewhere or not.

We can of course work around this by explicitly setting GDAL_USE_LIBKML=OFF.

Thanks for your time,

Carsten


P.S.: Even longer version.

To test I did the following. I first ran GDAL’s CMake with the settings that we 
use (which include GDAL_USE_EXTERNAL_LIBS=False). I then installed gdal via 
homebrew, removed it again (probably not a necessary step, it occurs to me 
now), but left all of its dependencies in place. I then ran GDAL’s CMake again, 
with the same settings and a clean directory. These are the differences:

$ rg :BOOL= 
gdal-clean/build/d185604a596dec60cbd1808d822f70b0e1117b56/CMakeCache.txt > 
clean-bools
$ rg :BOOL= 
gdal-dirty/build/d185604a596dec60cbd1808d822f70b0e1117b56/CMakeCache.txt > 
dirty-bools
$ diff clean-bools dirty-bools  172a173,175
> GDAL_USE_ARROW:BOOL=OFF
> GDAL_USE_ARROWDATASET:BOOL=OFF
> GDAL_USE_CFITSIO:BOOL=OFF
176a180
> GDAL_USE_FREEXL:BOOL=OFF
187a192
> GDAL_USE_JSONC:BOOL=OFF
190a196
> GDAL_USE_LERC:BOOL=OFF
191a198
> GDAL_USE_LIBKML:BOOL=ON
194a202,203
> GDAL_USE_NETCDF:BOOL=OFF
> GDAL_USE_ODBC:BOOL=OFF
197a207
> GDAL_USE_OPENJPEG:BOOL=False
198a209
> GDAL_USE_PARQUET:BOOL=OFF
202a214
> GDAL_USE_POPPLER:BOOL=OFF
203a216
> GDAL_USE_QHULL:BOOL=OFF
205a219
> GDAL_USE_SPATIALITE:BOOL=OFF
209a224
> GDAL_USE_XERCESC:BOOL=OFF
243a259,260
> OGR_ENABLE_DRIVER_LIBKML:BOOL=ON
> OGR_ENABLE_DRIVER_LIBKML_PLUGIN:BOOL=OFF

All of the extra FALSE entries are from stuff which has now been detected but 
ignored as wanted, they are ok. Just LIBKML doesn’t play nicely.

My main testing was with 3.6.4, but I also did a quick test with 3.8.0 and I 
saw the same behaviour.





_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to