Merge pull request #159 from godotengine/f43-update-4.6

Update various toolchains for 4.6
This commit is contained in:
Rémi Verschelde
2025-12-16 11:32:23 +01:00
committed by GitHub
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} && \ unzip ${CMDLINETOOLS} && \
rm ${CMDLINETOOLS} && \ rm ${CMDLINETOOLS} && \
yes | cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses && \ 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 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 && \ RUN git clone --depth 1 --no-checkout https://github.com/tpoechtrager/cctools-port.git && \
cd /root/cctools-port && \ cd /root/cctools-port && \
git fetch --depth 1 origin 7224fd5c9390ea15cff6ee69ff92ea677b40014b && \ git fetch --depth 1 origin 1cce4a06877992f708b2e0e2ab217a0cfb923a4f && \
git checkout 7224fd5c9390ea15cff6ee69ff92ea677b40014b git checkout 1cce4a06877992f708b2e0e2ab217a0cfb923a4f
COPY files/appleembedded/build.sh /root/cctools-port/usage_examples/ios_toolchain/build.sh 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 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 WORKDIR /root
@@ -8,6 +8,6 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
RUN dnf -y install --setopt=install_weak_deps=False \ 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 \ bash binutils bzip2 curl file findutils gettext git make nano patch pkgconfig python3-pip unzip which xz \
dotnet-sdk-8.0 && \ dotnet-sdk-8.0 && \
pip install scons==4.9.1 pip install scons==4.10.1
CMD /bin/bash CMD /bin/bash

View File

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

View File

@@ -1,7 +1,7 @@
ARG img_version ARG img_version
FROM godot-fedora:${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 && \ RUN dnf -y install --setopt=install_weak_deps=False libatomic && \
git clone --branch ${EMSCRIPTEN_VERSION} --progress https://github.com/emscripten-core/emsdk && \ 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 \ 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 && \ 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 && \ 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 && \ 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 && \ 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 XCODE_SDKV=
ENV APPLE_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 CMD /root/files/extract_xcode_sdks.sh
RUN chmod +x /root/extract_xcode_sdks.sh
CMD /root/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 `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 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` you are building for (e.g. `4.6`) and what Linux distribution the `Dockerfile.base`
is based on (e.g. `f42` for Fedora 42). is based on (e.g. `f43` for Fedora 43).
Run the command using: 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 You can then specify it in the `build.sh` of
[godot-build-scripts](https://github.com/godotengine/godot-build-scripts). [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: These are the expected container image sizes, so you can plan your disk usage in advance:
REPOSITORY TAG SIZE REPOSITORY TAG SIZE
localhost/godot-fedora 4.5-f42 949 MB localhost/godot-fedora 4.6-f43 978 MB
localhost/godot-linux 4.5-f42 2.74 GB localhost/godot-linux 4.6-f43 2.77 GB
localhost/godot-windows 4.5-f42 2.54 GB localhost/godot-windows 4.6-f43 2.65 GB
localhost/godot-web 4.5-f42 2.35 GB localhost/godot-web 4.6-f43 2.74 GB
localhost/godot-android 4.5-f42 4.19 GB localhost/godot-android 4.6-f43 4.22 GB
localhost/godot-osx 4.5-f42 5.30 GB localhost/godot-xcode 4.6-f43 1.56 GB
localhost/godot-appleembedded 4.5-f42 14.1 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 In addition to this, generating containers will also require some host disk space
(up to 10 GB) for the dependencies (Xcode). (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: These are the toolchains currently in use for Godot 4.3 and later:
- Base image: Fedora 42 - Base image: Fedora 43
- SCons: 4.9.1 - 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) - Linux: GCC 13.2.0 built against glibc 2.28, binutils 2.40, from our own [Linux SDK](https://github.com/godotengine/buildroot)
- Windows: - Windows:
* x86_64/x86_32: MinGW 12.0.0, GCC 14.2.1, binutils 2.43.1 * x86_64/x86_32: MinGW 13.0.0, GCC 15.2.1, binutils 2.45
* arm64: llvm-mingw 20250528, LLVM 20.1.6 * arm64: llvm-mingw 20251118, LLVM 21.1.6
- Web: Emscripten 4.0.10 - Web: Emscripten 4.0.20
- Android: Android NDK 28.1.13356709, build-tools 35.0.0, platform android-35, CMake 3.31.6, JDK 21 - Android: Android NDK 28.1.13356709, build-tools 35.0.1, 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 - Apple: Xcode 26.1.1 with Apple Clang (LLVM 19.1.5), cctools 1030.6.3, ld64 956.6
* macOS: MacOSX SDK 15.5 * SDKs: MacOSX, iPhoneOS, iPhoneSimulator, AppleTVOS, AppleTVSimulator, XROS, XRSimulator
* Apple Embedded: iPhoneOS and iPhoneSimulator SDKs 18.5, AppleTVOS and AppleTVSimulator SDKs 18.5, XROS and XRSimulator SDKs 2.5

View File

@@ -58,8 +58,8 @@ podman_build windows
podman_build web podman_build web
podman_build android podman_build android
XCODE_SDK=26.0.1 XCODE_SDK=26.1.1
APPLE_SDKV=26.0 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 [ ! -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 if [ ! -r "${files_root}"/Xcode_${XCODE_SDK}.xip ]; then
echo echo