[gdal-dev] Build question: GDAL with libwebp....

Kai Pastor, DG0YT dg0yt at darc.de
Wed Feb 14 21:06:33 PST 2024


Am 15.02.24 um 00:42 schrieb Carl Godkin:
> Hi Kai,
>
> > To pass lists into cmake, you usually need ';' as item separator.
>
> Thanks for the suggestion.  I am sure I am missing something but 
> inserting a semi-colon on the Linux command line appears to require it 
> be escaped.
>
> When I pass this:
>     -DWEBP_INCLUDE_DIR:PATH=/usr/local/devlibs/libwebp-1.3.2/include \
>     -DWEBP_LIBRARY=/usr/local/devlibs/libwebp-1.3.2/lib64/libwebp.a\;/usr/local/devlibs/libwebp-1.3.2/lib64/libsharpyuv.a \
> the link line comes out with the semi-colon (and also quoted):
>
>  "/usr/local/devlibs/libwebp-1.3.2/lib64/libwebp.a;/usr/local/devlibs/libwebp-1.3.2/lib64/libsharpyuv.a" 
>
>
> Or were you suggesting a different syntax?

Did you try to quote for the linux command line, instead of escaping:

"-DWEBP_LIBRARY=/usr/local/devlibs/libwebp-1.3.2/lib64/libwebp.a;/usr/local/devlibs/libwebp-1.3.2/lib64/libsharpyuv.a"

(YMMV. "LIBRARY" usually isn't for lists at all.)

> I do not really understand the second part of your reply but I'm not 
> using vcpkg; I'm trying to use cmake at the command line (and trying 
> to build on both Windows and Linux).
>
> Maybe most people using libwebp just let cmake find it on their system 
> somehow?

The second part is CMake code in a separate script which is injected 
into the configuration process by using the CMAKE_PROJECT_INCLUDE 
variable at the command line.

It really doesn't do more than finding webp's cmake config and making it 
available in a way that GDAL can consume. I would be happy if GDAL would 
just use the webp CMake config.

The pattern can be adapted to other packages. It also works for Kealib.

>
> My workaround, in case someone else is interested, is to do this
>     -DWEBP_INCLUDE_DIR:PATH=/usr/local/devlibs/libwebp-1.3.2/include \
>     -DWEBP_LIBRARY=/usr/local/devlibs/libwebp-1.3.2/lib64/libwebp.a \
>     -DCMAKE_CXX_STANDARD_LIBRARIES=/usr/local/devlibs/libwebp-1.3.2/lib64/libsharpyuv.a \
> Now libsharpyuv is included in every link line which works but isn't 
> quite right.  (I have also hand-edited the generated link line but I 
> was looking for a scriptable solution.)

Working on the vcpkg port is my approach to this scriptable solution.

Kai.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20240215/1ed36a65/attachment-0001.htm>


More information about the gdal-dev mailing list