Commit Graph

25 Commits

Author SHA1 Message Date
Hein-Pieter van Braam-Stewart 6aae6a5a5a Github changed their download page
This PR fixes that.
2023-02-09 17:08:31 +01:00
Rémi Verschelde 428340a423 Windows: Use `godot-mono-builds` scripts, remove Wine dependency
Streamlines the build process as done for Linux and macOS in previous commits,
and as was done for mobile and web platforms from the start. We're now fully
in sync with `godot-mono-builds`.

This also removes the need to hack around cross-compilation issues using Wine,
which also seemed no longer to work on Fedora 34 anyway.
2021-07-12 22:29:03 +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 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
Hugo Locurcio ef854376f7
Make all scripts executable
Unlike `build.sh`, other scripts weren't executable already.
2020-10-04 17:41:21 +02:00
Rémi Verschelde 106d163be4 Mono: Remove patch applied by godot-mono-builds patch_mono.py already 2020-04-07 16:18:37 +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 4812a83c56 Wasm: Fix mono patch application on Emscripten 1.38.47 2020-04-07 16:18:37 +02: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 8a912c7f0e Windows: Set WINEPATH for 32-bit wine to fix Mono build
Symlinking the BCL from `/usr/lib/mono` no longer seems needed
for either architecture, everything is built properly.

Fixes #34.
2020-01-07 14:01:22 +01:00
Rémi Verschelde 4cbbe672b5 Windows: Workaround Mono 6 BCL cross-compiling bug using Wine
This can be reverted once a proper fix has been deployed in upstream
Mono. No ETA yet as we're busy and it's unlikely to happen if we don't
do it ourselves :)

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2019-12-18 08:18:10 +01:00
Rémi Verschelde 65e94a9acb OSX: Update Mono config based on upstream one
Taken from a system-wide install of Mono 6.4 on macOS,
provided by @neikeq.
2019-12-18 08:14:36 +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 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 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 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 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
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 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