Commit Graph

36 Commits

Author SHA1 Message Date
Rémi Verschelde 2d95ceb333
Merge pull request #18 from godotengine/mono-wasm-bcl
Build Mono WebAssembly runtime and BCLs
2019-11-18 21:52:21 +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 12b37c7c7e
Merge pull request #17 from godotengine/mono-from-git
Use git tag to checkout stable mono releases
2019-11-18 21:51:07 +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 d185265e87
Merge pull request #16 from godotengine/base-deps
Install common dependencies in Dockerfile.base
2019-11-18 21:49:03 +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 79fbeca9b4 Remove unused build dependencies
We now default to everything bundled in 3.2 and 3.1.2+.
2019-11-15 10:20:29 +01:00
Rémi Verschelde 046e892f76 Install common dependencies in Dockerfile.base 2019-11-15 10:17:07 +01:00
Rémi Verschelde 341c290a6e Don't run make distclean, it fails on latest mono 2019-11-14 14:47:51 +01:00
Rémi Verschelde 20eec12cdb
Merge pull request #14 from tinmanjuggernaut/fix_web_docker
Fix Docker.javascript not building
2019-11-13 18:14:21 +01:00
Cory Petkovsek ffbf92c5b2 Add which and specify emssdk 1.39.0 2019-11-13 23:53:11 +08:00
Rémi Verschelde 261512a305 Re-enable temporarily disabled upload of windows and msvc containers 2019-11-13 16:37:57 +01:00
Rémi Verschelde 2765ca6f5a
Merge pull request #11 from tinmanjuggernaut/fix_android_build
Mount files into docker for android
2019-11-12 09:14:16 +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
Rémi Verschelde cf4c65b772
Merge pull request #5 from akien-mga/mono-update-stack
mono: Add support for mono 6.0.x
2019-11-11 17:20:32 +01:00
Hein-Pieter van Braam 6cc91510dd
Merge pull request #2 from akien-mga/javascript-source-env
javascript: Cleanup and source env in ~/.bashrc
2019-10-10 15:58:38 +02:00
Hein-Pieter van Braam 9430bd0d71
Merge pull request #1 from akien-mga/base-fedora30
base: Use Fedora 30 for godot-fedora:latest
2019-10-10 15:57:57 +02:00
Hein-Pieter van Braam-Stewart 2cd65a5005 Actually update the XCode package used. 2019-10-02 11:05:56 +02: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
Rémi Verschelde 895d8e308e mono: Update msbuild and support for mono 6.0.x
Install xz/xz-utils and conditionally handle tar.xz tarballs from 6.0+.

On Windows, I ran into a build issue due to `make distclean` being
bogus in 6.0.0.319 (mono/mono#16605), so I worked it around by starting
from a clean folder for each build.

The hotfixed mingw-binutils packages should likely be rebuilt against
Fedora 30's mingw-binutils, but I didn't find the src.rpm in the repo
to do it. There were no functional changes between F29 and F30's
mingw-binutils though, so we should be fine as is:
https://src.fedoraproject.org/rpms/mingw-binutils/commits/f30

The `MONO32_PREFIX` and `MONO64_PREFIX` are no longer used by the
buildsystem (replaced by a `mono_prefix` build option), but I kept them
where relevant to point to non-standard install locations.
2019-09-30 08:12:56 +02:00
Rémi Verschelde da91317292 javascript: Cleanup and source env in ~/.bashrc 2019-08-31 12:36:25 +02:00
Rémi Verschelde 0cba7fd75a base: Use Fedora 30 for godot-fedora:latest 2019-08-31 12:34:11 +02:00
Hein-Pieter van Braam-Stewart a62e85620a Don't build executables only to immediately delete them 2019-05-22 18:21:44 -07:00
Hein-Pieter van Braam-Stewart 206b9e2f75 Make OSX cross building more robust for newer Clang versions. 2019-05-22 18:21:22 -07: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 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 c81e929d89 We need YASM 1.3.0 on Ubuntu Trusty which ships with 1.2.0 2019-02-23 22:52:53 +01: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 747120073d Add HAVE_STRUCT_SOCKADDR_IN6 to mono's config.h 2019-02-23 22:30:48 +01: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 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