Commit Graph

38 Commits

Author SHA1 Message Date
Rémi Verschelde f504c58cb2 Update various toolchains for 4.3
- Fedora 40
- SCons 4.7.0
- MinGW 11.0.1 with GCC 14.1.1 and binutils 2.41
- Xcode 15.5 (macOS 14.5, iOS 17.5)
- Emscripten 3.1.61
2024-06-19 15:23:33 +02:00
Rémi Verschelde af40006600 Update various toolchains for 4.3
- .NET 8.0
- SCons 4.6.0
- Xcode 15.2 (macOS 14.2, iOS 17.2)
- Android API 34
- Emscripten 3.1.53
- Add wayland-devel dependency for Linux
2024-02-08 17:14:28 +01:00
Rémi Verschelde ced8cc8618
Update to Fedora 39, update all toolchains
- Base image: Fedora 39
- SCons: 4.5.2
- Linux: GCC 10.2.0 built against glibc 2.19, binutils 2.35.1
- Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
- Web: Emscripten 3.1.39
- Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 17
  CMake 3.22.1, JDK 17
- macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0
- iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0

Switches macOS/iOS builds to use Apple Clang, to maximize compatibility with
upstream Xcode.

Also add gettext which is needed by Godot build scripts to compile PO files
to MO.
2023-10-24 11:24:52 +02:00
Rémi Verschelde dd1c2c06b9 Xcode: Update to Xcode 14.1, macOS 13.0, iOS 16.1
Use Fedora 36's Clang since it provides version 14.0.5 which fits the version
used by Xcode 14.1.
2022-11-03 12:34:17 +01:00
Rémi Verschelde 58a04947c4 .NET 6: Remove all Mono build code, install .NET SDK 6.0 2022-08-29 09:11:39 +02:00
Rémi Verschelde 18b7ecfcd9 Update to Android NDK r23, Emscripten 3.1.14
Keeping NDK r21 for building Mono itself as it's not compatible yet
with NDK r22+ (see godotengine/godot-mono-builds#68).
2022-06-25 13:35:41 +02:00
Rémi Verschelde 53fb4ea624 Set base to Fedora 36, F35 had worse issues
This reverts #105 as we found that the MinGW/GCC/binutils
combinations in Fedora 35 generates broken Windows binaries.

To workaround the issue with LLVM 14 on F36, we build Clang 13.0.1
from source for osxcross in the OSX container. This matches Xcode 13.
2022-05-20 22:02:04 +02:00
Rémi Verschelde d1cfeabb99 Update to Xcode 13.3.1 (MacOSX 12.3 and iPhoneOS 15.4) 2022-05-19 08:44:39 +02:00
Rémi Verschelde 36e4d7cd79 Upgrade to Fedora 36 and Mono 6.12.0.178, newer toolchains
- F36 gives us MinGW GCC 11.2.1 and binutils 2.37 for Windows builds.
  * Had to downgrade autotools to F35 version for Mono wasm builds.
- OSX and iOS builds now use LLVM 14 for osxcross.
- Emscripten updated to 3.1.10 for classical builds (still using
  1.39.9 for Mono).
- Mono 6.12.0.178, and updated godot-mono-builds to fix issue with
  btls-lib on macOS ARM64 (fixes #95).
- SCons 4.3.0.
- Linux toolchains not updated yet, need to prepare a new buildroot
  with latest GCC/binutils.
2022-05-10 11:06:46 +02:00
Rémi Verschelde 16caa526cd OSX: Sync with latest osxcross, use upstream patch for compiler_rt 2021-10-11 12:43:39 +02:00
Rémi Verschelde 83531c1f8b macOS: Build compiler_rt for ARM64 too 2021-07-27 11:52:09 +02:00
Rémi Verschelde c55dffec9a macOS: Use `godot-mono-builds` scripts, add macOS arm64
This changes our handmade `configure` calls to rely on the streamlined build
process from `godot-mono-builds`, so that our builds are consistent with the
ones generated there.

This enables us to target macOS arm64 easily as neikeq did the relevant work
in the `godot-mono-builds` scripts.

Includes a backport of https://github.com/mono/mono/pull/21147 to fix Mono
build with `godot-mono-builds` using a wrapper for osxcross.
2021-07-12 22:28:44 +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 b409e6b9e9 Toolchain updates: Fedora 34, Emscripten 2.0.25, and more
- Update base image from Fedora 33 to Fedora 34 (newer GCC, Clang, MinGW and
  binutils).
- Update Emscripten for classical builds from 2.0.15 to 2.0.25.
- Update Android SDK tools to latest version, and build-tools from 30.0.1 to
  30.0.3.
- Update osxcross and ios cctools-port to latest commits.
- Update iOS Mono build's min target version to match Godot's buildsystem.
  See #83 for details.
2021-07-12 22:27:42 +02: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 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