libultrahdr icon indicating copy to clipboard operation
libultrahdr copied to clipboard

Missing flag in pkgconfig file

Open kmilos opened this issue 1 year ago • 2 comments

Although not strictly necessary and functions without so far, the -DUHDR_USING_SHARED_LIBRARY hint might help the linker generate more optimal output on Windows.

When building a shared lib on Windows (any compiler), the resulting .pc file should look like:

Cflags: -I${includedir} -DUHDR_USING_SHARED_LIBRARY

P.S. At least on MSYS2 (using pkgconf rather than pkg-config), the same .pc file can also support both shared and static libs by also adding the (undocumented)

Cflags.private: -UUHDR_USING_SHARED_LIBRARY

as well.

See e.g. https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-libdeflate/002-pkg-config.patch

Edit: I see that vcpkg also ships pkgconf rather than pkg-config, so should work out there as well.

kmilos avatar Sep 25 '24 08:09 kmilos

@kmilos instead of pkgconf if pkg-config were used, wouldn't this change break static builds as cflags.private is not supported by later.

ram-mohan avatar Oct 22 '24 18:10 ram-mohan

Possibly, in theory... However, you'd only add these on Windows when building a shared lib (or both shared + static), and all "major" Windows dev frameworks I'm aware of (vcpkg, MSYS2 MinGW, and Cygwin, even Conan) ship only pkgconf.

So it's up to you - either do this and wait for (unlikely?) breakage reports from some more exotic build environments on Windows, or leave it out and let the packagers patch it on their own accord...

kmilos avatar Oct 23 '24 07:10 kmilos