gstreamer-full: Fix linking under Windows
This PR is to allow building gstreamer-full under Windows. There are three concurrent issues:
the visibility macros don't recognise (officially) that Clang also support thevisibility
attribute- the way in which
gst_init_static_plugins
is called implies ELF's way of symbol exporting, where functions are usually never hidden - using
link_whole
has an undocumented side effect on Windows particularly; Win32 PE does not reexport symbols when linking into a shared library, unless they're manually marked asEXPORTS
through a module definition file.
I've added more complete explanations in the individual commits.