cerbero: Fix loading of rsvg, ttmlsubs, resindvd under MSVC
We were setting objc
as []
in the native file, because of which
meson was auto-detecting it and finding it inside the MSYS-MinGW env.
Then it was using that (instead of the MSVC compiler) to search for
libraries inside dependency()
and picked the GCC-compatible import
libraries (.dll.a
) for all dependencies, such as cairo, pango,
libxml2, fontconfig, etc.
The MSVC linker tried its best to chug along and mostly succeeded, but
possibly due to format incompatibilities between .dll.a
and .lib
import library formats or bugs in GCC and/or MSVC, this led to the
linker getting confused and looking for some libxml2 symbols both
inside cairo and libxml2 DLLs, and doing the same for some cairo
symbols too.
For example, it was looking for xmlDocGetRootElement
and
cairo_create
in both libxml2-2.dll
and also in libcairo-2.dll
.
Since in PE images multiple references to the same symbol in different DLLs is allowed and all these references must be resolved at runtime, this was a runtime error not a build-time error. The same thing was also happening to resindvd.
Oh, also re-enable resindvd which was accidentally disabled on MSVC when it was supposed to be disabled on UWP.
Closes #277 (closed)