Commit Graph

24 Commits

Author SHA1 Message Date
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 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
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 bf4ea28425 OSX: Don't keep backup of mono/etc/config 2020-01-10 10:52:03 +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 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 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 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 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 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 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-Stewart db63b23b59 Update XCode version for iOS and MacOS 2019-10-01 22:04:13 +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
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 0c45f623d5 Add YASM to all containers where it makes sense 2019-02-23 22:31:19 +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 0a9d7b2777 Initial commit 2019-01-07 21:51:22 +01:00