35 Commits

Author SHA1 Message Date
Rémi Verschelde
4150d2a1b7 Update various toolchains for 4.6
- Fedora 43
- SCons 4.10.1
- MinGW 13.0.0 with GCC 15.2.1 and binutils 2.45
- Emscripten 4.0.20
- Xcode 26.1.1
2025-11-22 20:48:32 +01:00
Rémi Verschelde
bc0a7d9700 Update various toolchains for 4.5
- Fedora 42
- SCons 4.9.1
- MinGW 12.0.0 with GCC 14.2.1 and binutils 2.43.1
- Android NDK r28b, API 25
- Emscripten 4.0.10
- Xcode 16.4 (macOS 15.5, iOS 18.5)
2025-06-12 23:09:06 +02:00
Rémi Verschelde
ffa2f1a5d7 Redo .NET 8.0, SCons 4.6.0, and Android API 34 updates lost in #138
Made a mistake while rebasing to make the PR.
2024-02-08 17:29:08 +01:00
Rémi Verschelde
ced8cc8618 Update to Fedora 39, update all toolchains
- Base image: Fedora 39
- SCons: 4.5.2
- Linux: GCC 10.2.0 built against glibc 2.19, binutils 2.35.1
- Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
- Web: Emscripten 3.1.39
- Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 17
  CMake 3.22.1, JDK 17
- 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

Switches macOS/iOS builds to use Apple Clang, to maximize compatibility with
upstream Xcode.

Also add gettext which is needed by Godot build scripts to compile PO files
to MO.
2023-10-24 11:24:52 +02:00
Rémi Verschelde
58a04947c4 .NET 6: Remove all Mono build code, install .NET SDK 6.0 2022-08-29 09:11:39 +02:00
Rémi Verschelde
06420a2e06 Android: Mono build now supports NDK r23, drops unused android cross compilers 2022-07-08 17:10:37 +02:00
Rémi Verschelde
18b7ecfcd9 Update to Android NDK r23, Emscripten 3.1.14
Keeping NDK r21 for building Mono itself as it's not compatible yet
with NDK r22+ (see godotengine/godot-mono-builds#68).
2022-06-25 13:35:41 +02:00
Rémi Verschelde
1daaf42a89 Android: Install Java 11 instead of 8, now needed for Godot 3.4 2021-10-18 12:14:32 +02:00
Rémi Verschelde
6636cb9d01 Android: Install platform 30, sync updated godot-mono-builds 2021-08-17 08:56:14 +02:00
Rémi Verschelde
b409e6b9e9 Toolchain updates: Fedora 34, Emscripten 2.0.25, and more
- 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.
2021-07-12 22:27:42 +02:00
Rémi Verschelde
d628f00753 Android: Install NDK 21.4 and latest cmdline tools
3.2.4 RC 3+ require NDK 21.4.
2021-02-22 16:46:03 +01:00
qjyqjyqjyqjy
b3707d15c5 Android: Fix NDK version variable expansion (#66)
To properly expand in the shell it needs to be in double quotes, not single quotes.
2021-01-18 15:53:30 +01:00
Fredia Huya-Kouadio
d40854f75a Update Dockerfile.android
Updates based on feedback.
2021-01-06 07:24:02 -08:00
Fredia Huya-Kouadio
c079413258 Update Dockerfile.android
Updates based on feedback.
2021-01-06 07:14:57 -08:00
Fredia Huya-Kouadio
5978e67f01 Update Dockerfile.android
Update configuration based on the Android buildsystem change in https://github.com/godotengine/godot/pull/44949.
2021-01-05 14:09:02 -08:00
Rémi Verschelde
ae944a9610 Android: Fix 32-bit Mono builds compat with API < 21
The fix is done in https://github.com/godotengine/godot-mono-builds/pull/22.

Also bump build-tools/platform to API 30 to match current 3.2 branch.
2020-12-10 09:42:49 +01:00
Rémi Verschelde
8b2f41062b Android: Fix installing SDK command line tools 2020-10-13 17:09:01 +02:00
Rémi Verschelde
7e119fda47 Android: Update and pin NDK version, use android 29 2020-10-09 13:20:22 +02:00
Rémi Verschelde
dce2101e6e Use parallel make in godot-mono-builds scripts
Builds are faster with 64 jobs instead of 1 :)

It's mostly relevant for 'make' but we also use the -j flag
for 'configure' as it can also trigger a build for external
dependencies (like llvm for upcoming iOS Mono builds).
2020-04-07 16:18:37 +02:00
Rémi Verschelde
a26fc11c30 Factor out cloning and patching for godot-mono-builds
This will also be used for iOS so it makes sense to do it all
together with the split out mono clone.

This also allows to pin the commit used more easily.
2020-04-07 16:18:37 +02:00
Cory Petkovsek
86739a8185 Optimize mono & dnf downloads 2020-03-20 01:13:06 +08:00
Rémi Verschelde
cb26a84aea Mono: Add patch from Unity fork to fix TLS re-attachment
Fixes godotengine/godot#33735.
2020-01-21 15:06:46 +01:00
Rémi Verschelde
4b458b46f5 Mono: Upgrade Android/JavaScript version of godot-mono-builds.git 2020-01-03 20:42:22 +01:00
Rémi Verschelde
0a63061960 Mono: Allow specifying fixed git hash and pretty image version
Specifying only a branch like '2019-08' is problematic if upstream commits
something between the builds of two containers.

We could make a tarball in the first container build and reuse that, but we
need the flexibility of Git for some patching in the Android and JavaScript
builds, so instead we allow specifying a git tree-ish as the third argument.

We can therefore also give a pretty version string to use for the image name
as second argument, e.g. 6.6.0.160 for bef1e6335812d32f8eab648c0228fc624b9f8357.

As we can't `git clone` a commit hash directly, we still need to provide both
branch name and then commit hash for this use case.
2019-12-04 11:50:04 +01:00
Rémi Verschelde
cd973e1d9f Properly pass img_version to all containers
Continuation and fixup of #23.
2019-12-03 08:13:45 +01:00
Rémi Verschelde
1aec8652d3 mono: Update msbuild to 16.3, support for git branches
To get WebAssembly templates to actually work, we need to use
Mono 6.6 (currently in preview), which doesn't have tags yet
but is in the `2019-08` branch. So I dehardcoded the `mono-`
prefix for the git tree-ish to allow using `./build.sh 2019-08`.

6.6 doesn't build with msbuild 16.0, so I'm upgrading to its
matching version 16.3. There are no DEB files for 16.3 on the
EOL'ed Ubuntu 14.04, but it seems that the 16.04 packages install
cleanly.

We also backport a patch from mono's master branch to fix wasm
support further, and enable parallel build jobs for make.
2019-11-21 09:47:48 +01:00
Rémi Verschelde
a5ceea36da Use /bin/bash as default CMD instruction
The previous `['/bin/bash']` was not working, running the image
with `podman run -it <name>` would evaluate to:
```
> sh -c ['/bin/bash']
sh: [/bin/bash]: No such file or directory
```
2019-11-18 21:52:37 +01:00
Rémi Verschelde
17666f07fe Build Mono WebAssembly runtime and BCLs
We force using Emscripten 1.38.47 as there is a regression in 1.38.48
and 1.39.x which makes the generation of our .wasm file fail.

Up until now we used the desktop BCL (compiled with desktop Mono)
for both desktop and Android, but that does not work for WebAssembly
(and we suspect Android issues related to it).

So we now build the Android and WebAssembly BCLs in the relevant
containers, which are later copied in the templates directory to
include on export. We already have the desktop BCL from the regular
build.
2019-11-18 21:51:46 +01:00
Rémi Verschelde
668e36373b Use git tag to checkout stable mono releases
The main reason is that upstream Mono tends to miss some
important files in its tarballs, so Git tags appears to be
a more reliable medium.

Also group RUN commands to reduce the number of intermediate
dependencies.
2019-11-18 21:49:58 +01:00
Rémi Verschelde
f7966f0a1e Disable installation of weak deps
This saves us from pulling gtk2 and gtk3 as weak deps of
perl and git or whatnot... And we don't need to pull in all
the documentation on Ubuntu.

Also ensures that we properly run `dnf clean all` after each
installation.
2019-11-18 17:09:03 +01:00
Rémi Verschelde
046e892f76 Install common dependencies in Dockerfile.base 2019-11-15 10:17:07 +01:00
Rémi Verschelde
7f2010a496 android: Set up Mono buildsystem
Adds support for building Mono templates for Android in 3.2/master.

We use the script from https://github.com/godotengine/godot-mono-builds
to build Mono for all arches with the right options, and a patch included
from https://github.com/godotengine/godot/blob/master/modules/mono/build_scripts/patches/fix-mono-android-tkill.diff
which is also necessary.

I also moved the SDK to a `sdk` folder to make the `$HOME` more tidy,
especially since the Mono build scripts install the mono toolchains in
`$HOME` too by default.

Using a git clone for specific mono version tag, as the upstream tarballs
are iffy (the 5.18.1.3 tarball lacks files needed to build on Android).
2019-09-30 08:19:24 +02:00
Hein-Pieter van Braam-Stewart
3872ea323a Add a host compiler to the android container 2019-04-25 02:39:00 +02:00
Hein-Pieter van Braam
e5d6158b9e Several small fixes
* Mono config on MacOSX is not portable from the Linux and Windows
version.
* Rename the compilers so that 'gcc' and 'g++' are the new version by
default.
* Add default environment variables to containers.
2019-01-17 23:12:40 +01:00
Hein-Pieter van Braam
0a9d7b2777 Initial commit 2019-01-07 21:51:22 +01:00