Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile.android
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions Dockerfile.appleembedded
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.base
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM fedora:42
FROM fedora:43

WORKDIR /root

Expand All @@ -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
13 changes: 6 additions & 7 deletions Dockerfile.osx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.web
Original file line number Diff line number Diff line change
@@ -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 && \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -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 && \
Expand Down
9 changes: 1 addition & 8 deletions Dockerfile.xcode
Original file line number Diff line number Diff line change
Expand Up @@ -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
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Expand All @@ -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).
Expand All @@ -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
4 changes: 2 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
File renamed without changes.