Add support for building for the Universal Windows Platform using a new variant 'uwp'
I have tested this on macOS, Cross-iOS, Cross-Android, Linux (Fedora 32), Cross-Win32, Cross-Win64, Windows MinGW 64-bit, Windows MinGW 32-bit, Windows MSVC 64-bit (+ vscrt=mdd), Windows MSVC 32-bit (+ vscrt=mdd), Windows UWP 64-bit (+ vscrt=mdd), Windows UWP ARM64 (+ vscrt=mdd), Windows UWP ARMv7 (+ vscrt=mdd).
Whew! Just realized that's 18 platforms.
Needs the following MRs for CI to pass: gst-plugins-base!660 (merged), gst-plugins-bad!1266 (merged), gst-plugins-ugly!50 (merged), gstreamer!477 (merged), gst-plugins-good!589 (closed).
To build for x86-64 UWP, run cerbero commands like so:
./cerbero-uninstalled -v uwp [command]
To build for arm64 UWP, use:
./cerbero-uninstalled -c config/cross-win-arm64.cbc -v uwp [command]
Similarly for armv7 UWP.
You can't run package gstreamer-1.0
with this yet since I haven't rebased the patches needed for it to build glib for UWP on top of 2.64 yet. However, you can build proxy-libintl, zlib, libffi right now. Once glib is building, we will be able to run build gstreamer-1.0
(to build only gstreamer core)
The next step to run package gstreamer-1.0
(to build everything) would involve disabling all external dependencies that use autotools. To make this possible, I'm planning to introduce a new opt-in recipe format specifically for recipes that build gstreamer plugins.
Once that's done, I'd like to start shipping official UWP binaries (x64 and arm64); tentatively with 1.17.x/1.18.