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>
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.
The `server` platform has now been replaced by the "headless" `DisplayServer`
which is registered on all desktop platforms.
Disable JavaScript and UWP builds which are not currently supported in 4.0.
We were shipping a pre-built version but it only works on specific distros
as it's tightly coupled to openssl. When upgrading from F34 to F35 it started
segfaulting.
We now rely on the version packaged by Fedora which should be installed on the
host, or compiled and installed manually in PATH by users.
Cf. https://github.com/godotengine/build-containers/pull/84
- Linux builds are now done on Fedora using a custom Godot SDK instead of
relying on an old Ubuntu version for portability.
Removes need for various workarounds.
- macOS Mono builds now include support for Apple Silicon / arm64, both
architectures are concatenated in universal binaries.
This new config is compatible with the `3.x` branch for Godot 3.4.
It might or might not work as is for `master` / Godot 4.0. Porting it will
be the next step.
For other platforms:
- Android is stripped by gradle already.
- HTML5 already has stripped release builds.
Debug builds could be stripped with fastcomp's wasm-strip but it might be
deprecated?
- iOS is a static lib and shouldn't be stripped.
- UWP can't be stripped by default GNU strip it seems.
This allows signing the editor .app (will be done in next commit) and should
let users sign their macOS exports.
Co-authored-by: Shane Liesegang <shane@techie.net>