Update various toolchains for 4.6

- Fedora 43
- SCons 4.10.1
- MinGW 13.0.0 with GCC 15.2.1 and binutils 2.45
- Emscripten 4.0.20
- Xcode 26.1.1
This commit is contained in:
Rémi Verschelde
2025-11-22 10:50:17 +01:00
parent 277982ace8
commit 4150d2a1b7
10 changed files with 36 additions and 44 deletions

View File

@@ -13,6 +13,6 @@ RUN dnf -y install --setopt=install_weak_deps=False \
unzip ${CMDLINETOOLS} && \
rm ${CMDLINETOOLS} && \
yes | cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses && \
cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION}" 'cmdline-tools;latest' 'build-tools;35.0.0' 'platforms;android-35' 'cmake;3.31.6'
cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION}" 'cmdline-tools;latest' 'build-tools;35.0.1' 'platforms;android-35' 'cmake;3.31.6'
CMD /bin/bash

View File

@@ -6,8 +6,8 @@ RUN dnf -y install --setopt=install_weak_deps=False \
RUN git clone --depth 1 --no-checkout https://github.com/tpoechtrager/cctools-port.git && \
cd /root/cctools-port && \
git fetch --depth 1 origin 7224fd5c9390ea15cff6ee69ff92ea677b40014b && \
git checkout 7224fd5c9390ea15cff6ee69ff92ea677b40014b
git fetch --depth 1 origin 1cce4a06877992f708b2e0e2ab217a0cfb923a4f && \
git checkout 1cce4a06877992f708b2e0e2ab217a0cfb923a4f
COPY files/appleembedded/build.sh /root/cctools-port/usage_examples/ios_toolchain/build.sh
COPY files/appleembedded/wrapper.c /root/cctools-port/usage_examples/ios_toolchain/wrapper.c

View File

@@ -1,4 +1,4 @@
FROM fedora:42
FROM fedora:43
WORKDIR /root
@@ -8,6 +8,6 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
RUN dnf -y install --setopt=install_weak_deps=False \
bash binutils bzip2 curl file findutils gettext git make nano patch pkgconfig python3-pip unzip which xz \
dotnet-sdk-8.0 && \
pip install scons==4.9.1
pip install scons==4.10.1
CMD /bin/bash

View File

@@ -5,26 +5,25 @@ FROM godot-fedora:${img_version}
#
# sudo dnf install gnupg2
ENV XCODE_SDKV=26.0.1
ENV APPLE_SDKV=26.0
ENV OSX_SDK=26.0
ENV XCODE_SDKV=26.1.1
ENV APPLE_SDKV=26.1
RUN dnf -y install --setopt=install_weak_deps=False \
automake autoconf bzip2-devel cmake gawk gcc gcc-c++ libdispatch libicu-devel libtool \
libxml2-devel openssl-devel uuid-devel yasm gpg && \
git clone --progress https://github.com/tpoechtrager/osxcross && \
cd /root/osxcross && \
git checkout f873f534c6cdb0776e457af8c7513da1e02abe59 && \
git checkout 121ce150c7857a9474dfff8a8e431482806b3e1b && \
# Patch to fix visionOS support.
# See: https://github.com/llvm/llvm-project/issues/142502
patch -p1 < /root/files/patches/osxcross-fix-visionos.patch && \
ln -s /root/files/MacOSX${OSX_SDK}.sdk.tar.xz /root/osxcross/tarballs && \
ln -s /root/files/MacOSX${APPLE_SDKV}.sdk.tar.xz /root/osxcross/tarballs && \
export UNATTENDED=1 && \
export SDK_VERSION=${OSX_SDK} && \
export SDK_VERSION=${APPLE_SDKV} && \
# Custom build Apple Clang to ensure compatibility.
# Find the equivalent LLVM version for the SDK from:
# https://en.wikipedia.org/wiki/Xcode#Toolchain_versions
CLANG_VERSION=19.1.4 ENABLE_CLANG_INSTALL=1 INSTALLPREFIX=/usr ./build_apple_clang.sh && \
CLANG_VERSION=19.1.5 ENABLE_CLANG_INSTALL=1 INSTALLPREFIX=/usr ./build_apple_clang.sh && \
./build.sh && \
./build_compiler_rt.sh && \
rm -rf /root/osxcross/build

View File

@@ -1,7 +1,7 @@
ARG img_version
FROM godot-fedora:${img_version}
ENV EMSCRIPTEN_VERSION=4.0.10
ENV EMSCRIPTEN_VERSION=4.0.20
RUN dnf -y install --setopt=install_weak_deps=False libatomic && \
git clone --branch ${EMSCRIPTEN_VERSION} --progress https://github.com/emscripten-core/emsdk && \

View File

@@ -3,7 +3,7 @@ FROM godot-fedora:${img_version}
RUN dnf -y install --setopt=install_weak_deps=False \
mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static && \
export LLVM_MINGW_VERSION=20250528 && \
export LLVM_MINGW_VERSION=20251118 && \
export LLVM_MINGW_NAME=llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-x86_64 && \
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/${LLVM_MINGW_NAME}.tar.xz && \
tar xf ${LLVM_MINGW_NAME}.tar.xz && \

View File

@@ -10,12 +10,5 @@ RUN dnf -y install --setopt=install_weak_deps=False \
ENV XCODE_SDKV=
ENV APPLE_SDKV=
ENV OSX_SDKV=
ENV IOS_SDKV=
ENV TVOS_SDKV=
ENV VISIONOS_SDKV=
COPY extract_xcode_sdks.sh /root/extract_xcode_sdks.sh
RUN chmod +x /root/extract_xcode_sdks.sh
CMD /root/extract_xcode_sdks.sh
CMD /root/files/extract_xcode_sdks.sh

View File

@@ -38,14 +38,14 @@ be welcome (but back when we tried we ran into performance issues).
The `build.sh` script included is used to build the containers themselves.
The two arguments can take any value and are meant to convey what Godot branch
you are building for (e.g. `4.5`) and what Linux distribution the `Dockerfile.base`
is based on (e.g. `f42` for Fedora 42).
you are building for (e.g. `4.6`) and what Linux distribution the `Dockerfile.base`
is based on (e.g. `f43` for Fedora 43).
Run the command using:
./build.sh 4.5 f42
./build.sh 4.6 f43
The above will generate images using the tag '4.5-f42'.
The above will generate images using the tag '4.6-f43'.
You can then specify it in the `build.sh` of
[godot-build-scripts](https://github.com/godotengine/godot-build-scripts).
@@ -67,13 +67,14 @@ you can comment out the corresponding lines from the script:
These are the expected container image sizes, so you can plan your disk usage in advance:
REPOSITORY TAG SIZE
localhost/godot-fedora 4.5-f42 949 MB
localhost/godot-linux 4.5-f42 2.74 GB
localhost/godot-windows 4.5-f42 2.54 GB
localhost/godot-web 4.5-f42 2.35 GB
localhost/godot-android 4.5-f42 4.19 GB
localhost/godot-osx 4.5-f42 5.30 GB
localhost/godot-appleembedded 4.5-f42 14.1 GB
localhost/godot-fedora 4.6-f43 978 MB
localhost/godot-linux 4.6-f43 2.77 GB
localhost/godot-windows 4.6-f43 2.65 GB
localhost/godot-web 4.6-f43 2.74 GB
localhost/godot-android 4.6-f43 4.22 GB
localhost/godot-xcode 4.6-f43 1.56 GB
localhost/godot-osx 4.6-f43 14.6 GB
localhost/godot-appleembedded 4.6-f43 16.0 GB
In addition to this, generating containers will also require some host disk space
(up to 10 GB) for the dependencies (Xcode).
@@ -83,14 +84,13 @@ In addition to this, generating containers will also require some host disk spac
These are the toolchains currently in use for Godot 4.3 and later:
- Base image: Fedora 42
- SCons: 4.9.1
- Base image: Fedora 43
- SCons: 4.10.1
- Linux: GCC 13.2.0 built against glibc 2.28, binutils 2.40, from our own [Linux SDK](https://github.com/godotengine/buildroot)
- Windows:
* x86_64/x86_32: MinGW 12.0.0, GCC 14.2.1, binutils 2.43.1
* arm64: llvm-mingw 20250528, LLVM 20.1.6
- Web: Emscripten 4.0.10
- Android: Android NDK 28.1.13356709, build-tools 35.0.0, platform android-35, CMake 3.31.6, JDK 21
- Apple: Xcode 16.4 with Apple Clang (LLVM 19.1.4), cctools 1024.3, ld64 955.13
* macOS: MacOSX SDK 15.5
* Apple Embedded: iPhoneOS and iPhoneSimulator SDKs 18.5, AppleTVOS and AppleTVSimulator SDKs 18.5, XROS and XRSimulator SDKs 2.5
* x86_64/x86_32: MinGW 13.0.0, GCC 15.2.1, binutils 2.45
* arm64: llvm-mingw 20251118, LLVM 21.1.6
- Web: Emscripten 4.0.20
- Android: Android NDK 28.1.13356709, build-tools 35.0.1, platform android-35, CMake 3.31.6, JDK 21
- Apple: Xcode 26.1.1 with Apple Clang (LLVM 19.1.5), cctools 1030.6.3, ld64 956.6
* SDKs: MacOSX, iPhoneOS, iPhoneSimulator, AppleTVOS, AppleTVSimulator, XROS, XRSimulator

View File

@@ -58,8 +58,8 @@ podman_build windows
podman_build web
podman_build android
XCODE_SDK=26.0.1
APPLE_SDKV=26.0
XCODE_SDK=26.1.1
APPLE_SDKV=26.1
if [ ! -e "${files_root}"/MacOSX${APPLE_SDKV}.sdk.tar.xz ] || [ ! -e "${files_root}"/Xcode-Developer${XCODE_SDK}.tar.xz ]; then
if [ ! -r "${files_root}"/Xcode_${XCODE_SDK}.xip ]; then
echo