This aligns CI Windows builds with recently shipped deps to support AV1
and RIST as well as providing other updates.
* Update FFmpeg from 4.2.4 to 4.4.1
* Update nv-codec-headers from 9.0.18.2 to 11.1.5.0
* Add libaom and SVT-AV1 support (64-bit only)
* Add RIST support
* Enable multithreading for libvpx obs-deps builds
We currently publish the same build from the same branch
to Flathub. However, soon we'll need to build the Flatpak
manifest in different branches, and publish them in different
repositories.
Prepare for that by splitting the publish step in two: one
for Flathub, and another for Flathub Beta. Do that using
a matrix strategy.
Skip building and publishing stable releases when it's a beta
or RC release by setting an output variable in the first job.
We'll soon be moving to branching before releases, which
is a case that the current Flatpak worflow did not account
for.
Adapt it to also run on release/** branches.
Beta releases are being considered, in which case the tag
name will contain '-beta' instead of '-rc'. Adapt the CI
workflow to take '-beta' into account too.
Now that Flatpak has achieved full feature parity with non-Flatpak
builds, it is time to publish it directly into Flathub.
Add a new "publish" job to the Flatpak workflow that builds and
publishes to Flathub Beta, and to Flathub (if the release tag
doesn't contain '-rc').
Rename "flatpak_builder" to "generate_bundle", and set the display
name to "Generate Flatpak Bundle". This will make it less vague,
which will come in handy since next commits will add new jobs to
this workflow.
The flatpak-builder tool now supports passing secrets options to the
build system. These options are not printed during the build, nor
added to the resolved manifest after build, so they don't leak env
vars from CI.
Make secret variables part of the Flatpak workflow environment, like
the main workflow. Pass the various services hashes and clientids to
the build system using the new "secret-opts" key.
Microsoft Visual Studio 2019 ships with LLVM/Clang 12 as of Visual
Studio 2019 16.11.0 (August 10, 2021). LLVM/Clang 12 is available on all
platforms. This change should make it easier to have clang-format "just
work" on dev systems and be consistent across platforms without having
to use an outdated version.
(Jim note: Rather than copy the QtNetwork library manually like we were
doing before, this makes it so that QtNetwork is used as a dependency of
the UI. The cmake used to copy the library manually thus us no longer
necessary.)
The Flatpak action now contains two subactions:
- flatpak-builder: for building and uploading a bundle
- flat-manager: for deploying the bundle to a remote repository
Use the right action (flatpak-builder) for the Flatpak workflow.
This won't affect existing pull requests, except the ones that
have the "Seeking Testers" label applied - in which case, they
simply need to rebase against the master branch.
Unfortunately, neither Ubuntu 20.04 nor 18.04 have a recent enough
PipeWire package. Disable the PipeWire bits of linux-capture there.
The Flatpak workflow is still able to build it, so keep it enabled
there.