Syncs with the config of the current `main` branch (as used for 4.2+)
as far as possible (backports the last couple of years of PRs, minus
the removal of some platforms and of the Mono builds).
Notably backports #128 and #131, giving us these toolchains:
- Base image: Fedora 39
- Mono version: 6.12.0.198
- SCons: 4.5.2
- Linux: GCC 13.2.0 built against glibc 2.28, binutils 2.40, from our own [Linux SDK](https://github.com/godotengine/buildroot)
- Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
- HTML5: Emscripten 3.1.39 (standard builds), Emscripten 1.39.9 (Mono builds)
- Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 11
- macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0
- iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0
- UWP: Unchanged, current Dockerfile still unsupported
Generally speaking the scripts are executed from a user's homedirectory.
By default the SELinux context will be: unconfined_u:object_r:user_home_t:s0
For podman to work with SELinux enable the context needs to be
system_u:object_r:container_file_t:s0. Podman can do this automatically
if the volume is made with the :z attribute.
(cherry picked from commit 8f6852e813)
Removed old instructions about Ubuntu 18.04 as there's no good reason
to use such an old OS to build those containers, and we're not testing
it so chances are that the containers may not build/work properly there.
It saves a lot of trouble to just use latest Fedora (or possibly RHEL/CentOS)
to build those containers.
This reverts #105 as we found that the MinGW/GCC/binutils
combinations in Fedora 35 generates broken Windows binaries.
To workaround the issue with LLVM 14 on F36, we build Clang 13.0.1
from source for osxcross in the OSX container. This matches Xcode 13.
Notably LLVM 14 on F36 doesn't seem to play nice with macOS builds.
We probably need to wait for Xcode 14 to have support for LLVM 14.
Going back to F35 also avoids issues with autoconf 2.71.
- F36 gives us MinGW GCC 11.2.1 and binutils 2.37 for Windows builds.
* Had to downgrade autotools to F35 version for Mono wasm builds.
- OSX and iOS builds now use LLVM 14 for osxcross.
- Emscripten updated to 3.1.10 for classical builds (still using
1.39.9 for Mono).
- Mono 6.12.0.178, and updated godot-mono-builds to fix issue with
btls-lib on macOS ARM64 (fixes#95).
- SCons 4.3.0.
- Linux toolchains not updated yet, need to prepare a new buildroot
with latest GCC/binutils.
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.