{"id":14961382,"url":"https://github.com/godotengine/godot-mono-builds","last_synced_at":"2025-10-19T08:31:13.829Z","repository":{"id":37697262,"uuid":"195269962","full_name":"godotengine/godot-mono-builds","owner":"godotengine","description":"Mono build scripts for Godot","archived":false,"fork":false,"pushed_at":"2023-06-08T13:53:15.000Z","size":144,"stargazers_count":56,"open_issues_count":10,"forks_count":36,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-29T03:43:00.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/godotengine.png","metadata":{"funding":{"custom":"https://fund.godotengine.org/"},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-04T16:02:13.000Z","updated_at":"2024-05-31T00:19:24.000Z","dependencies_parsed_at":"2024-09-27T00:00:48.274Z","dependency_job_id":null,"html_url":"https://github.com/godotengine/godot-mono-builds","commit_stats":{"total_commits":81,"total_committers":12,"mean_commits":6.75,"dds":0.5802469135802469,"last_synced_commit":"4912f62a8f263e5673012de6ed489402af2d63bb"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-mono-builds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-mono-builds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-mono-builds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Fgodot-mono-builds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/godotengine","download_url":"https://codeload.github.com/godotengine/godot-mono-builds/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219869234,"owners_count":16555570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:24:57.533Z","updated_at":"2025-10-19T08:31:13.817Z","avatar_url":"https://github.com/godotengine.png","language":"Python","funding_links":["https://fund.godotengine.org/"],"categories":[],"sub_categories":[],"readme":"# Mono build scripts for Godot\n\n[![Build](https://github.com/godotengine/godot-mono-builds/workflows/Build/badge.svg)](https://github.com/godotengine/godot-mono-builds/actions)\n\nThis repository contains scripts for building the Mono runtime to use with Godot Engine.\n\n## Supported versions\n\nThe scripts are tested against specific versions of the toolchains used by Godot.\nWhile they may work with other versions, you might have issues applying patches or compiling, so we recommend using the versions below.\n\n- Mono: 6.12.0.206.\n- Emscripten: 1.39.9.\n- Android NDK: 23.2.8568313\n\n## Command-line options\n\n**Requires Python 3.7 or higher**\n\nThese scripts are based on the Mono [sdks](https://github.com/mono/mono/tree/master/sdks) makefiles, with some changes to work well with Godot. Some platforms or targets depend on files from the `sdks` directory in the Mono source repository. This directory may be missing from tarballs. If that's the case, cloning the git repository may be needed. [This table](https://www.mono-project.com/docs/about-mono/versioning/#mono-source-versioning) can be used to determine the branch for a specific version of Mono.\n\nSome patches need to be applied to the Mono sources before building. This can be done by running `python3 ./patch_mono.py`.\n\nRun `python3 SCRIPT.py --help` for the full list of command line options.\n\nBy default, the scripts will install the resulting files to `$HOME/mono-installs`.\nA custom output directory can be specified with the `--install-dir` option.\n\nWhen cross-compiling to Windows, `--mxe-prefix` must be specified. For example, with the `mingw-w64` package installed on Ubuntu, one can pass `--mxe-prefix=/usr`.\n\nA path to the Mono source tree must be provided with the `--mono-sources` option or with the `MONO_SOURCE_ROOT` environment variable:\n\n```bash\nexport MONO_SOURCE_ROOT=$HOME/git/mono\n```\n\n### Notes\n- Python 3.7 or higher is required.\n- OSXCROSS is supported except for building the Mono cross-compilers.\n- Building on Windows is not supported. It's possible to use Cygwin or WSL (Windows Subsystem for Linux) but this hasn't been tested.\n\n## Compiling Godot for Desktop with this Runtime\n\nIn order to compile mono into Godot for deskop you will need to first build for desktop (see 'Desktop' below), and then Base Class Libraries (see 'Base Class library' below).\n\nThen run the 'copy-bcl' action of the same desktop script you ran configure and make on, specifying the same target platforms you used before. This will copy the bcl runtime into the runtime directories that the subsequent Godot build (using `copy_mono_root=yes`) expects to find them in.\ne.g.\n`./linux.py copy-bcl --target=x86 --target=x86_64`\n\nThen you'll need to compile Godot using `copy_mono_root=yes`\ne.g.\n`scons -j6 target=release_debug tools=yes module_mono_enabled=yes copy_mono_root=yes mono_prefix=\"$HOME/mono-installs/desktop-linux-x86_64-release\"`\n\n\n## Desktop\n\n```bash\n# Build the runtimes for 32-bit and 64-bit Linux.\n./linux.py configure --target=x86 --target=x86_64\n./linux.py make --target=x86 --target=x86_64\n\n# Build the runtimes for 32-bit and 64-bit Windows.\n./windows.py configure --target=x86 --target=x86_64 --mxe-prefix=/usr\n./windows.py make --target=x86 --target=x86_64 --mxe-prefix=/usr\n\n# Build the runtime for 64-bit macOS.\n./osx.py configure --target=x86_64\n./osx.py make --target=x86_64\n```\n\n_AOT cross-compilers for desktop platforms cannot be built with these scripts yet._\n\n## Android\n\nBuilding for Android requires the Android SDK cmdline-tools to be installed in the Android SDK folder.\n\n```bash\n# The default location for the Android SDK is $HOME/Android/Sdk. This step can be omitted if SDK is in this location.\nexport ANDROID_SDK_ROOT=$HOME/Android/Sdk\n\n# Build the runtime for all supported Android ABIs.\n./android.py configure --target=all-targets\n./android.py make --target=all-targets\n```\n\nThe option `--target=all-targets` is a shortcut for `--target=armv7 --target=arm64v8 --target=x86 --target=x86_64`.\n\n# iOS\n\n```bash\n# Build the runtime for the iPhone simulator.\n./ios.py configure --target=x86_64\n./ios.py make --target=x86_64\n\n# Build the runtime for the iPhone device.\n./ios.py configure --target=arm64\n./ios.py make --target=arm64\n\n# Build the AOT cross-compiler targeting the iPhone device.\n./ios.py configure --target=cross-arm64\n./ios.py make --target=cross-arm64\n```\n\nThe runtime can also be built an OSXCROSS iOS toolchain. The `--ios-toolchain` and `--ios-sdk` options\nare the equivalent of the Godot SCons options `IPHONEPATH` and `IPHONESDK` respectively.\nThe cross compiler cannot be built with OSXCROSS yet.\n\n## WebAssembly\n\nJust like with Godot, an active Emscripten SDK is needed for building the Mono WebAssembly runtime.\n\nSome patches may need to be applied to the Emscripten SDK before building Mono. This can be done by running `./patch_emscripten.py`.\n\n```bash\n# Build the runtime for WebAssembly.\n./wasm.py configure --target=runtime\n./wasm.py make --target=runtime\n```\n\n_AOT cross-compilers for WebAssembly cannot be built with this script yet._\n\n## Base Class library\n\n```bash\n# Build the Desktop BCL.\n./bcl.py make --product=desktop\n\n# Build the Desktop BCL for Windows.\n./bcl.py make --product=desktop-win32\n\n# Build the Android BCL.\n./bcl.py make --product=android\n\n# Build the iOS BCL.\n./bcl.py make --product=ios\n\n# Build the WebAssembly BCL.\n./bcl.py make --product=wasm\n```\n\n**NOTE:** Building the Desktop BCL for the current system is required first to be able to build the Desktop BCL for Windows.\n\n## Reference Assemblies\n\n```bash\n./reference_assemblies.py install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Fgodot-mono-builds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgodotengine%2Fgodot-mono-builds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Fgodot-mono-builds/lists"}