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>
Build the Android templates for .NET using the 'mono' edition that contains additional dependencies required by .NET projects to support Android OS APIs (like crypto).
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.
Add environment variables to sign the release build for the Godot
Android editor and to publish the library to MavenCentral.
If the environment vars are not defined, we do a simple unsigned
`release_debug` build for the Android editor.
Change `config.sh.in` template to use single quotes by default, to
prevent expanding special characters in environment variables.
To publish to MavenCentral, a new `build-android/upload-mavencentral.sh`
script is added. It needs to run after the build using gradle, but we
still want it to be optional and used only when making an official
release, so we copy the compiled sources in the first step.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
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.
The target options were renamed in https://github.com/godotengine/godot-mono-builds/pull/69.
Also removes the commented out code for Mono Android editor because it will
likely never be meaningful to build. There's no MSBuild on Android to compile C#.
Equivalent to debug_symbols=no use_lto=yes use_static_cpp=yes.
We keep LTO disabled for iOS as users need to relink on deploy, and that's very slow
and memory hungry with LTO.
The in-container build scripts now get passed CLASSICAL and MONO env
variables which can be used to build one or the other, or both
(default).
`build.sh`, `build-release.sh` and `build-templates.sh` now all expect
command line switches to specify the version details, and optionally
which flavor to build.
For example to build Mono only:
./build.sh -v 3.2-beta4 -g master -b mono
./build-release.sh -v 3.2-beta4 -b mono
./build-templates.sh -v 3.2-beta4 -t 3.2.beta4 -b mono
Also took the opportunity to do some extra cleanup, like removing
unnecessary `builtin_*` options since they all default to True, even
for Linux in 3.2, as well as `use_lto` and `use_static_cpp` options
on platforms which don't implement them.
And I improved the `build-release.sh` script to be a bit easier to
read, and avoid having too many stray folders to cleanup.
The build scripts should now generate the final structure that we'd use
on the official mirrors, with the `mono` distribution as a subfolder of
the main release folder.
- Add Mono builds for Android.
- Remove now unused `MONO*_PREFIX` env variables (replaced by `mono_prefix`
command line option).
- Update iOS to SDK 12.4 and darwin17 for proper ARKit support.
- Drop 32-bit support for iOS (armv7, x86).