This is eventually meant to be unified with the "classical" builds,
but for the initial testing we start with a dedicated "dotnet" build.
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Follow-up to https://github.com/godotengine/build-containers/pull/128.
Also reverts #88 since these new images include JDK 17, and the closure
compiler issue was fixed upstream.
And removes the manual install of gettext which is now also part of the
images.
X11 libs should not be needed to generate the Mono glue anymore (they've been
unnecessary for a while already).
Temporary change until we switch to newer build containers with it.
Also temporarily disable closure compiler for Web editor, needed for
4.2 beta 1 and beta 2, should be fixed upstream afterwarads.
This enables compiling the PO files to smaller binary MO files,
reducing the size of the editor binary which embeds them.
gettext will be added to the base container but I haven't done it
yet, so for now adding it manually here.
Fabio found that full LTO produces smaller binaries than ThinLTO,
and that's quite important for the Web platform.
But for an obscure reason LLVM's full LTO cannot linking with multiple
threads, and so it's slow as heck (10-15 min per build).
So we work it around by starting all builds in parallel so that they
can all link at the same time.
The code to do so is pretty ugly, could be refactored further.
Follow-up to https://github.com/godotengine/godot/pull/65094.
Also reverts LTO change from #62, we found that while it's much slower
to link, full LTO still produces smaller binaries and that's quite
important for the Web platform.