Commit Graph

26 Commits

Author SHA1 Message Date
Rémi Verschelde 5cf65ca6d4 JavaScript: Rename EMSDK env vars, `emsdk_env.sh` nukes them 2021-05-16 12:04:46 +02:00
Rémi Verschelde f8aed4f23a JavaScript: Update classical builds to Emscripten 2.0.15 2021-03-27 14:07:29 +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
Fabio Alessandrelli ab8503aa31 JavaScript: Install Emscripten SDK 1.39.9 (Mono) and 2.0.10 (Standard).
Mono needs to stay on 1.39.9 for compatibility with Mono 6.12.x, but for
standard builds the latest is best, and 2.0.10+ is needed for GDNative support.

None is sourced by default, they will be sourced by the build script.

We use a copy of the same Git clone to ensure that `emsdk_env.sh` is
compatible, otherwise we end up with a dirty state when sourcing both.
2020-12-10 13:40:29 +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 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
Rémi Verschelde 4812a83c56 Wasm: Fix mono patch application on Emscripten 1.38.47 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 43f2cf8654
Merge pull request #28 from godotengine/fix-javascript-mono
JavaScript: Update and fix mono patch for Emscripten 1.38.42+
2019-12-03 09:57:40 +01:00
Rémi Verschelde e6e211f495 JavaScript: Update and fix mono patch for Emscripten 1.38.42+
Cherry-pick the whole https://github.com/mono/mono/pull/16636

We were also attempting to patch the wrong folder previously (I had it
working in my local tests but committed the wrong patch when rebasing
to make the Git history pretty... :)).
2019-12-03 09:55:09 +01:00
Rémi Verschelde d4d8ce85f2 Pin specific commit for all Git clones
This helps ensure that container builds are reproducible if thirdparty
repositories change.
2019-12-03 09:52:56 +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 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
Cory Petkovsek ffbf92c5b2 Add which and specify emssdk 1.39.0 2019-11-13 23:53:11 +08:00
Rémi Verschelde da91317292 javascript: Cleanup and source env in ~/.bashrc 2019-08-31 12:36:25 +02:00
Hein-Pieter van Braam 0c45f623d5 Add YASM to all containers where it makes sense 2019-02-23 22:31:19 +01:00
Hein-Pieter van Braam 0a9d7b2777 Initial commit 2019-01-07 21:51:22 +01:00