Streamlines the build process as done for Linux and macOS in previous commits,
and as was done for mobile and web platforms from the start. We're now fully
in sync with `godot-mono-builds`.
This also removes the need to hack around cross-compilation issues using Wine,
which also seemed no longer to work on Fedora 34 anyway.
This changes our handmade `configure` calls to rely on the streamlined build
process from `godot-mono-builds`, so that our builds are consistent with the
ones generated there.
This enables us to target macOS arm64 easily as neikeq did the relevant work
in the `godot-mono-builds` scripts.
Includes a backport of https://github.com/mono/mono/pull/21147 to fix Mono
build with `godot-mono-builds` using a wrapper for osxcross.
We now provide pre-built toolchains for Linux with old glibc and the required
Godot dependencies, which can be used to build portable Godot binaries without
having to be on an extremely old Linux distro.
So we can retire the old Ubuntu 14.04 containers and instead do our portable
builds directly on Fedora 34, like for other platforms.
This commit also makes use of `godot-mono-builds` to build Mono and the BCL
for Linux, instead of doing it manually. The same will be done for Windows and
macOS in the next commit.
This is a Preview release of Mono, so we use `centos8-preview` packages which
correspond to its MSBuild version requirements (16.10.1).
For osxcross, we need to build compiler-rt to be able to link the new Apple
Silicon support code. See #83 for details.
Includes a backport of https://github.com/tpoechtrager/osxcross/pull/284 to
simplify the install process.
Actual macOS arm64 builds will be added in a follow-up commit.
- Update base image from Fedora 33 to Fedora 34 (newer GCC, Clang, MinGW and
binutils).
- Update Emscripten for classical builds from 2.0.15 to 2.0.25.
- Update Android SDK tools to latest version, and build-tools from 30.0.1 to
30.0.3.
- Update osxcross and ios cctools-port to latest commits.
- Update iOS Mono build's min target version to match Godot's buildsystem.
See #83 for details.
We've had troubles trying to upgrade GCC on Ubuntu 14.04 i386 containers
as statically linking libstdc++ would then trigger crashes when running
those binaries on more recent Ubuntu versions (which seems to be a Ubuntu
bug, other distros don't have the problem).
Upgrading to Ubuntu 16.04 and using its default GCC 5 version seems to
produce working binaries even with statically linked libstdc++, and that
should still be good enough for the few 32-bit Linux users we have.