Build ffmpeg for linux-arm, linux-arm64, linux-x86
This PR adds the targets linux-arm, linux-arm64 as part of https://github.com/ppy/osu-deploy/pull/170. Will be updated once https://github.com/ppy/osu-framework/pull/6255 is merged.
This one can be updated now that https://github.com/ppy/osu-framework/pull/6255 has been merged.
Some notes:
- Please remove changes not related to the Linux build (macOS bump, merging the Windows build process). These are out of scope and maybe change the resulting binaries which would need testing
- The x86 build doesn't work. x86 support is not necessary so you don't need to include it at all, but if you do want to include it, please make sure it works.
linux-x86 now builds after disabling asm. I'm not sure about the performance implications, but I'm glad to be one step ahead for now. According to this issue, GCC is having trouble building FFMPEG for x86 32-bit on a 64-bit system. I would open a new PR when this is fixed.
I wonder if there's a way to achieve the same builds using cross-compilation similar to the Windows build scripts. That would make it a lot easier to compile these locally (installing QEMU and docker is fairly hefty for these simple builds). That said, it's not a high priority or blocking issue.
I find it much easier to set up Docker than to try to piece together a cross-compilation toolchain. If multiplatform images are needed, which is the case here, Docker can install the QEMU binaries by itself with a single command. I would leave it as is for now, but would like to revisit this in the future when I have more experience with cross compiling on Linux.
Looks like ARM64 runners will be available in the end of the year and is available now for GitHub Enterprise Cloud/Team orgs. I suggest holding off this one until this becomes generally available.