Skip to content

Add support for building for the Universal Windows Platform using a new variant 'uwp'

Nirbheek Chauhan requested to merge nirbheek/cerbero:new-variant-uwp into master

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.

Edited by Nirbheek Chauhan

Merge request reports