mirror of
https://github.com/godotengine/build-containers.git
synced 2026-01-05 22:10:22 +03:00
Merge pull request #159 from godotengine/f43-update-4.6
Update various toolchains for 4.6
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 && \
|
||||||
|
|||||||
@@ -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 && \
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
40
README.md
40
README.md
@@ -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
|
|
||||||
|
|||||||
4
build.sh
4
build.sh
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user