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.

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

Reply via email to