26 Commits

Author SHA1 Message Date
Rémi Verschelde
8a943c3f00 Add support for experimental .NET builds (GDExtension) (#136)
This is eventually meant to be unified with the "classical" builds,
but for the initial testing we start with a dedicated "dotnet" build.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2025-12-02 10:15:49 +01:00
Rémi Verschelde
8c9fd0328b Define redirect_build_objects=no to avoid copying GBs of bin/obj 2025-05-13 23:23:27 +02:00
Pāvels Nadtočajevs
44992c6c76 Add accesskit-c to the build setup. 2025-03-21 09:47:31 +02:00
Rémi Verschelde
ceadb16e22 Revert "Linux: Disable LTO for ARM64/ARM32, it crashes on Raspberry Pi OS"
This reverts commit f8a41bc69f.

This wasn't actually the cause for the crash.
The issue is fixed by https://github.com/godotengine/build-containers/pull/134.
2023-12-11 22:21:31 +01:00
Rémi Verschelde
f8a41bc69f Linux: Disable LTO for ARM64/ARM32, it crashes on Raspberry Pi OS
Needs further investigation and reporting the bug upstream.
2023-11-24 00:03:24 +01:00
Rémi Verschelde
96b8f89a22 Linux: Update to new SDK with GCC 13, add ARM64 and ARM32 2023-11-01 17:42:57 +01:00
Rémi Verschelde
65cca8165a Update scripts for new Fedora 39 based images for 4.2-beta3 and later
Follow-up to https://github.com/godotengine/build-containers/pull/128.

Also reverts #88 since these new images include JDK 17, and the closure
compiler issue was fixed upstream.

And removes the manual install of gettext which is now also part of the
images.

X11 libs should not be needed to generate the Mono glue anymore (they've been
unnecessary for a while already).
2023-10-24 11:45:29 +02:00
Rémi Verschelde
72cb40ffad Install gettext in all editor build containers
This enables compiling the PO files to smaller binary MO files,
reducing the size of the editor binary which embeds them.

gettext will be added to the base container but I haven't done it
yet, so for now adding it manually here.
2023-02-14 11:20:33 +01:00
Rémi Verschelde
f95a42611b Unify target/tools arguments after upstream change 2022-10-13 14:10:59 +02:00
Rémi Verschelde
23187596fb .NET 6: Initial port of build scripts for 4.0
Not working yet but cleans up a lot of the Mono stuff we won't need anymore.
2022-08-30 10:12:58 +02:00
Aaron Franke
d68cf1a26e CPU architecture name changes for Windows/Linux outputs from SCons 2022-08-25 09:28:45 -05:00
Aaron Franke
e544bb91dc CPU architecture folder name changes 2022-07-22 18:30:56 -05:00
Rémi Verschelde
6463e8b60a Port scripts to Godot 4.0.dev, remove server build
The `server` platform has now been replaced by the "headless" `DisplayServer`
which is registered on all desktop platforms.

Disable JavaScript and UWP builds which are not currently supported in 4.0.
2022-07-21 12:23:09 +02:00
Rémi Verschelde
295431f722 Update scripts for overhauled build containers (3.x-mono-6.12.0.147)
Cf. https://github.com/godotengine/build-containers/pull/84

- Linux builds are now done on Fedora using a custom Godot SDK instead of
  relying on an old Ubuntu version for portability.
  Removes need for various workarounds.
- macOS Mono builds now include support for Apple Silicon / arm64, both
  architectures are concatenated in universal binaries.

This new config is compatible with the `3.x` branch for Godot 3.4.
It might or might not work as is for `master` / Godot 4.0. Porting it will
be the next step.
2021-07-13 12:12:05 +02:00
Rémi Verschelde
9f2d00d177 Linux 32-bit x86: Use GCC 5, static cpp but no LTO
See https://github.com/godotengine/build-containers/pull/79.

Also fixup our CC and CXX overrides which were not doing what was expected.
The i386 builds did use GCC 9 too due to manual creation of symlinks in the
build container.

See https://godotforums.org/discussion/comment/48209/#Comment_48209
2021-04-26 13:30:37 +02:00
Andrii Doroshenko (Xrayez)
f40716e53e Make BUILD_NAME globally configurable 2021-03-06 17:16:24 +02:00
Rémi Verschelde
2190e23987 Use new production=yes option
Equivalent to debug_symbols=no use_lto=yes use_static_cpp=yes.
We keep LTO disabled for iOS as users need to relink on deploy, and that's very slow
and memory hungry with LTO.
2021-02-22 12:13:13 +01:00
Rémi Verschelde
0a5547b12c Linux: Use GCC 4.8 for 32-bit x86
Also remove the definition of use_static_cpp as this is now done
automatically in the SCons script.
2021-02-22 12:09:31 +01:00
Rémi Verschelde
fe6e7b1e4e Use GCC 9 on Linux 2020-12-10 10:15:30 +01:00
Rémi Verschelde
5a7ffb3722 Mono: Workaround segfault issue with Mono MSBuild on Ubuntu 14.04
Using the dotnet CLI can be a valid workaround, but it's not available
for 32-bit Linux.

Instead, we build the Godot API and GodotTools solutions (CIL) on Fedora
in the mono-glue container, and copy them to the Ubuntu-based Linux
containers.
2020-06-05 13:47:37 +02:00
Rémi Verschelde
3319757d9d Linux: Disable use_static_cpp for 32-bit
The binaries seem to crash on Ubuntu 18.04 i386 when using it.
2020-01-16 23:59:23 +01:00
Rémi Verschelde
930cdb67c7 Mono: Add net_4_x_win and net_4_x BCLs to templates
Also accommodate recent change with mono-glue files.
2020-01-07 14:48:22 +01:00
Rémi Verschelde
067d3f3a49 Refactor build scripts to allow building only Classical or Mono
The in-container build scripts now get passed CLASSICAL and MONO env
variables which can be used to build one or the other, or both
(default).

`build.sh`, `build-release.sh` and `build-templates.sh` now all expect
command line switches to specify the version details, and optionally
which flavor to build.

For example to build Mono only:

  ./build.sh -v 3.2-beta4 -g master -b mono
  ./build-release.sh -v 3.2-beta4 -b mono
  ./build-templates.sh -v 3.2-beta4 -t 3.2.beta4 -b mono

Also took the opportunity to do some extra cleanup, like removing
unnecessary `builtin_*` options since they all default to True, even
for Linux in 3.2, as well as `use_lto` and `use_static_cpp` options
on platforms which don't implement them.

And I improved the `build-release.sh` script to be a bit easier to
read, and avoid having too many stray folders to cleanup.
The build scripts should now generate the final structure that we'd use
on the official mirrors, with the `mono` distribution as a subfolder of
the main release folder.
2019-12-13 20:05:40 +01:00
Rémi Verschelde
0c2d825451 Port build scripts for Godot 3.2 / master branch
- Add Mono builds for Android.
- Remove now unused `MONO*_PREFIX` env variables (replaced by `mono_prefix`
  command line option).
- Update iOS to SDK 12.4 and darwin17 for proper ARKit support.
- Drop 32-bit support for iOS (armv7, x86).
2019-12-02 09:59:49 +01:00
Rémi Verschelde
09b605f7b9 Make number of build cores configurable in config.sh 2019-12-02 09:57:41 +01:00
Hein-Pieter van Braam-Stewart
8aba1f833a Initial commit 2019-10-01 22:06:35 +02:00