151 Commits

Author SHA1 Message Date
Rémi Verschelde
35b535b6bc Windows: Drop patched mingw-binutils, upstream F31 has the fix
The mingw-binutils fix for LTO was backported upstream to Fedora 31
with https://bodhi.fedoraproject.org/updates/FEDORA-2019-3d381baace
2019-12-03 08:13:45 +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
ab3cdae9e0 Merge pull request #25 from godotengine/osx-config-mono-6.6
OSX: Fix config file for mono 6.0+
2019-12-02 10:09:04 +01:00
Rémi Verschelde
5d8005ab41 OSX: Fix config file for mono 6.0+
This effectively means that we can't use the current Dockerfile.osx
to build mono < 6.0, as the DLL path changed.
2019-11-23 17:19:41 +01:00
Rémi Verschelde
8208704ccb Merge pull request #23 from godotengine/img-version
Refactor image versioning, using $godot_branch-$mono_version format
2019-11-23 11:08:56 +01:00
Rémi Verschelde
4ab47bf24d Merge pull request #22 from godotengine/msbuild-16.3-fix-wasm
mono: Update msbuild to 16.3, support for git branches
2019-11-23 11:08:42 +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
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
Hein-Pieter van Braam
f7a44c6fc6 Merge pull request #21 from godotengine/fix-osx-build
OSX: Fix support for latest osxcross and Xcode 10.13
2019-11-19 13:43:08 -08:00
Rémi Verschelde
1f52c3f1cb OSX: Fix support for latest osxcross and Xcode 10.13
The osxcross installation process has been improved and now supports
more recent versions of Xcode than 7, so most of our custom code is
no longer needed.

The xcode packer could also be reworked to use osxcross' SDK packing
script.

Fixes #15.
2019-11-19 11:18:28 +01:00
Rémi Verschelde
545fbe5b9a Merge pull request #20 from godotengine/fedora-31
Update base to Fedora 31
2019-11-18 21:55:45 +01:00
Rémi Verschelde
bb171470f6 Update base to Fedora 31 2019-11-18 21:54:40 +01:00
Rémi Verschelde
81cb1623c9 Merge pull request #19 from godotengine/cmd-bash
Use /bin/bash as default CMD, log container build output
2019-11-18 21:54:16 +01:00
Rémi Verschelde
f5297d3060 Log each container build to a file 2019-11-18 21:52:37 +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
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