Commit Graph

42 Commits

Author SHA1 Message Date
Rémi Verschelde
3c80b0d5ea Update README with Fedora 34 digest, disable MSVC build 2021-10-11 12:27:55 +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
8b32344741 Windows: Update godot-mono-builds to fix https://github.com/godotengine/godot/issues/36958 2021-07-30 09:58:23 +02:00
Rémi Verschelde
56418cb8d8 Windows: Update godot-mono-builds with fixed copy_bcl for win32 2021-07-27 08:56:46 +02:00
Rémi Verschelde
a1fe8335d7 Update README with current list of containers 2021-07-13 08:28:01 +02:00
Rémi Verschelde
28fc5dde48 Linux: New container based on Fedora using Godot SDKs
We now provide pre-built toolchains for Linux with old glibc and the required
Godot dependencies, which can be used to build portable Godot binaries without
having to be on an extremely old Linux distro.

So we can retire the old Ubuntu 14.04 containers and instead do our portable
builds directly on Fedora 34, like for other platforms.

This commit also makes use of `godot-mono-builds` to build Mono and the BCL
for Linux, instead of doing it manually. The same will be done for Windows and
macOS in the next commit.
2021-07-12 22:28:16 +02:00
Rémi Verschelde
c98720506a Mono: Update to 6.12.0.147, adds Apple Silicon support
This is a Preview release of Mono, so we use `centos8-preview` packages which
correspond to its MSBuild version requirements (16.10.1).

For osxcross, we need to build compiler-rt to be able to link the new Apple
Silicon support code. See #83 for details.
Includes a backport of https://github.com/tpoechtrager/osxcross/pull/284 to
simplify the install process.

Actual macOS arm64 builds will be added in a follow-up commit.
2021-07-12 22:27:42 +02:00
Rémi Verschelde
011a019429 Update to Mono 6.12.0.122 (current stable)
That's what we'll use for Godot 3.3.
2021-03-28 01:31:10 +01:00
Rémi Verschelde
64ee6284b5 OSX/iOS: Update to Xcode 12.4 and latest osxcross
Osxcross update should improve things for Apple Silicon, notably we
no longer need to disable LDID fake signing, it was replaced by
adhoc-codesign.
2021-03-28 01:31:09 +01:00
Rémi Verschelde
cc43bc75f3 Mono: Update godot-mono-builds to d462909236457cd212b17378c29ce336749e260d
Should help fix issue with JavaScript builds.
2021-03-26 13:40:38 +01:00
Jose Juan Montes
5e9f238967 Adding usage documentation. 2021-02-23 02:32:35 +01:00
Hein-Pieter van Braam-Stewart
aaa066f0cf Add warning about wine binfmt support 2021-02-11 05:04:16 +01:00
Rémi Verschelde
57fdc2cebf Windows: Request net_4_x explicitly so that configure aborts if it can't be built 2021-02-10 23:25:47 +01:00
Rémi Verschelde
efa506e301 JavaScript: Bump Emscripten to 2.0.11 for standard builds, update godot-mono-builds 2020-12-30 09:59:55 +01: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
8faf54b9db Update to Xcode 12.2 SDKs
- macOS 11.0 SDK for Big Sur update
- iOS 14.2 SDK

Cf. https://github.com/godotengine/godot-build-scripts/pull/10
2020-11-19 12:58:03 +01:00
Rémi Verschelde
98f617fbbd Update to Mono 6.12.0.111
- Since with latest godot-mono-builds, removing the need for downstream
  patches for iOS and Emscripten builds.
2020-11-19 11:46:24 +01:00
Rémi Verschelde
dede88afa4 Update to Mono 6.12.0.102, use Fedora 32
- Base container: Fedora 32
- Mono uses version 6.12.0.102, MSBuild 16.6
- Linux builds use GCC 9
- Windows builds use Fedora 32's mingw-gcc (GCC 9)
- JavaScript uses Emscripten 1.39.9 (Mono 6.12 requires 1.39.7 but that version
  fails generating .wasm, so we backport a patch to get 1.39.9)
- Install SCons 4.0.1 from pip
2020-10-20 13:27:57 +02:00
Rémi Verschelde
3366693a05 iOS and OSX: Upgrade containers to use latest osxcross and Xcode 12.0.1
Provides SDKs for iOS 14.0 and macOS 10.15.

Mono is patched to fix a regression in Xcode 11.4+, still unfixed by Apple.
Another patch is backported from Unity's Mono fork to fix another issue with
the macOS 11.0 beta SDK.

Fixes missing arguments in Xcode and iOS dockerfiles, seems like some changes
were not properly committed during the last refactor.
2020-10-07 12:33:54 +02:00
adrian
bb2e4e0600 podman is required. "docker build -v" does not exist, this is only in podman.
files subdirectory here is incorrect.
2020-07-08 09:37:11 -04:00
Rémi Verschelde
d3cbff6cc7 iOS: Build Mono runtime
iOS image is now based on the OSX one, as we'll need the OSX
toolchain to build the AOT cross-compiler.

We can't build the cross-compiler yet though as godot-mono-builds
doesn't support OSXCross for that part, and we will likely need
to build libclang manually beforehand too.
2020-04-14 12:05:42 +02:00
Rémi Verschelde
106d163be4 Mono: Remove patch applied by godot-mono-builds patch_mono.py already 2020-04-07 16:18:37 +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
4cbbe672b5 Windows: Workaround Mono 6 BCL cross-compiling bug using Wine
This can be reverted once a proper fix has been deployed in upstream
Mono. No ETA yet as we're busy and it's unlikely to happen if we don't
do it ourselves :)

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2019-12-18 08:18:10 +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
ffdd1a039c JavaScript: Drop -upstream suffix from image name 2019-12-03 12:47:26 +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
d29b6a78fb Refactor image versioning, using $godot_branch-$mono_version format
E.g. `3.1-mono-5.18.1.3` or `master-2019-08`.
The images which do not include mono only use the Godot branch,
i.e. `3.1` or `master`.
2019-11-21 09:55:00 +01:00
Rémi Verschelde
f5297d3060 Log each container build to a file 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
Cory Petkovsek
4b6fa4ade7 mount files into docker for android 2019-11-12 16:05:14 +08:00
Rémi Verschelde
4d8fc0292b Merge pull request #7 from akien-mga/android-mono
android: Set up Mono buildsystem
2019-11-11 17:21:07 +01:00
Hein-Pieter van Braam-Stewart
db63b23b59 Update XCode version for iOS and MacOS 2019-10-01 22:04:13 +02: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
c37204859d Add a fix to binutils that fixes LTO for us
The patch in question is
https://sourceware.org/bugzilla/show_bug.cgi?id=24267#c11

Patch is includes in the src.rpm in this commit
2019-02-28 17:29:55 +01:00
Hein-Pieter van Braam
736a387fc4 Add an 'export' container to easily export games from the CLI 2019-01-09 20:26:32 +01:00
Hein-Pieter van Braam
ee0cb224f6 Docker requires a path
While podman does not require a path if -f is specified docker does.

This should fix building the containers from Docker
2019-01-08 02:12:46 +01:00
Hein-Pieter van Braam
3cc957099c Fix error messages 2019-01-08 02:03:47 +01:00
Hein-Pieter van Braam
0a9d7b2777 Initial commit 2019-01-07 21:51:22 +01:00