google / libultrahdr

Ultra HDR is a true HDR image format, and is backcompatible. libultrahdr is the reference codec for the Ultra HDR format. The codecs that support the format can render the HDR intent of the image on HDR displays; other codecs can still decode and display the SDR intent of the image.
https://developer.android.com/guide/topics/media/platform/hdr-image-format
Apache License 2.0
146 stars 23 forks source link

Malformed .pc file #249

Closed kmilos closed 1 week ago

kmilos commented 2 weeks ago

If no EGL, results in

Libs.private:  EGL_LIBRARIES-NOTFOUND 

instead of an empty field.

ram-mohan commented 2 weeks ago

Thank you for pointing this out. Have uploaded a change that addresses this.

kmilos commented 2 weeks ago

Thanks, but that's not the whole story I'm afraid: after enabling EGL (via angle on MSYS2), these are now populated w/ absolute paths on the build machine, which is not what one wants either:

Libs.private:  D:/a/msys64/ucrt64/lib/libEGL.dll.a D:/a/msys64/ucrt64/lib/libGLESv2.dll.a

(and also not the .dll.a import stub libs, but proper .a static libs., i.e. no extension given, just the library name)

Similarly, on Arch it ended up being

Libs.private:  /usr/lib/libEGL.so /usr/lib/libGLESv2.so

(absolute path to shared objects; also note that there are no static libraries available there)

ram-mohan commented 2 weeks ago

Sorry I am new to this. Will take assistance and get these things resolved.

kmilos commented 2 weeks ago

Also, Libs.private should contain the actual flags passed directly to the linker, and in that sense include the -l as well (while dropping the standard lib prefix which is anyway looked up by the linker). In this case, the expected line is something like:

Libs.private:  -lEGL -lGLESv2

if those static libraries actually exist, that is.

ram-mohan commented 2 weeks ago

@kmilos Thank you very much for pointing these.