Skip to content

Update various toolchains for 4.4 #150

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 16, 2024
Merged
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
6 changes: 3 additions & 3 deletions Dockerfile.base
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
FROM fedora:40
FROM fedora:41

WORKDIR /root

ENV DOTNET_NOLOGO=1
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1

RUN dnf -y install --setopt=install_weak_deps=False \
bash 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 \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

binutils is needed for the Linux builds when using separate_debug_symbols=yes, which we're planning to start using to finally provide debug symbols.

Could have added to the Linux image only but it may be useful to run on Windows stuff too, and overall I'd feel naked not having binutils on a Linux distro.

dotnet-sdk-8.0 && \
pip install scons==4.8.0
pip install scons==4.8.1

CMD /bin/bash
4 changes: 2 additions & 2 deletions Dockerfile.ios
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
ARG img_version
FROM godot-osx:${img_version}

ENV IOS_SDK=17.5
ENV IOS_SDK=18.2

RUN dnf -y install --setopt=install_weak_deps=False \
automake autoconf gcc gcc-c++ gcc-objc gcc-objc++ cmake libicu-devel libtool libxml2-devel openssl-devel perl python yasm && \
git clone --progress https://github.com/tpoechtrager/cctools-port && \
cd /root/cctools-port && \
git checkout a98286d858210b209395624477533c0bde05556a && \
git checkout 81f205e8ca6bbf2fdbcb6948132454fd1f97839e && \
# arm64 device
usage_examples/ios_toolchain/build.sh /root/files/iPhoneOS${IOS_SDK}.sdk.tar.xz arm64 && \
mkdir -p /root/ioscross/arm64 && \
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@ ENV GODOT_SDK_LINUX_ARM32=/root/arm-godot-linux-gnueabihf_sdk-buildroot
ENV BASE_PATH=${PATH}

RUN dnf install -y wayland-devel && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
curl -LO https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-4/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
tar xf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
rm -f x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
cd x86_64-godot-linux-gnu_sdk-buildroot && \
./relocate-sdk.sh && \
cd /root && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
curl -LO https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-4/i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
tar xf i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
rm -f i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
cd i686-godot-linux-gnu_sdk-buildroot && \
./relocate-sdk.sh && \
cd /root && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
curl -LO https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-4/aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
tar xf aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
rm -f aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
cd aarch64-godot-linux-gnu_sdk-buildroot && \
./relocate-sdk.sh && \
cd /root && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
curl -LO https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-4/arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
tar xf arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
rm -f arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
cd arm-godot-linux-gnueabihf_sdk-buildroot && \
Expand Down
10 changes: 5 additions & 5 deletions Dockerfile.osx
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
ARG img_version
FROM godot-fedora:${img_version}

ENV OSX_SDK=14.5
ENV OSX_SDK=15.2

RUN dnf -y install --setopt=install_weak_deps=False \
automake autoconf bzip2-devel cmake gcc gcc-c++ libdispatch libicu-devel libtool \
libxml2-devel openssl-devel uuid-devel yasm && \
git clone --progress https://github.com/tpoechtrager/osxcross && \
cd /root/osxcross && \
git checkout ff8d100f3f026b4ffbe4ce96d8aac4ce06f1278b && \
curl -LO https://github.com/tpoechtrager/osxcross/pull/415.patch && \
git apply 415.patch && \
git checkout 29fe6dd35522073c9df5800f8cd1feb4b9a993a8 && \
curl -LO https://github.com/tpoechtrager/osxcross/pull/441.patch && \
git apply 441.patch && \
ln -s /root/files/MacOSX${OSX_SDK}.sdk.tar.xz /root/osxcross/tarballs && \
export UNATTENDED=1 && \
export SDK_VERSION=${OSX_SDK} && \
# 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=16.0.0 ENABLE_CLANG_INSTALL=1 INSTALLPREFIX=/usr ./build_apple_clang.sh && \
CLANG_VERSION=17.0.6 ENABLE_CLANG_INSTALL=1 INSTALLPREFIX=/usr ./build_apple_clang.sh && \
./build.sh && \
./build_compiler_rt.sh && \
rm -rf /root/osxcross/build
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ 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 && \
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && \
tar xf llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && \
rm -f llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && \
mv -f llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64 /root/llvm-mingw
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20241203/llvm-mingw-20241203-ucrt-ubuntu-20.04-x86_64.tar.xz && \
tar xf llvm-mingw-20241203-ucrt-ubuntu-20.04-x86_64.tar.xz && \
rm -f llvm-mingw-20241203-ucrt-ubuntu-20.04-x86_64.tar.xz && \
mv -f llvm-mingw-20241203-ucrt-ubuntu-20.04-x86_64 /root/llvm-mingw

CMD /bin/bash
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,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 40
- SCons: 4.8.0
- Base image: Fedora 41
- SCons: 4.8.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 11.0.1, GCC 14.1.1, binutils 2.41
* arm64: llvm-mingw 20240619, LLVM 18.1.8
* x86_64/x86_32: MinGW 12.0.0, GCC 14.2.1, binutils 2.42
* arm64: llvm-mingw 20241203, LLVM 19.1.5
- Web: Emscripten 3.1.64
- Android: Android NDK 23.2.8568313, build-tools 34.0.0, platform android-34, CMake 3.22.1, JDK 17
- macOS: Xcode 15.4 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.5
- iOS: Xcode 15.4 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.5
- macOS: Xcode 16.2 with Apple Clang (LLVM 17.0.6), MacOSX SDK 15.2
- iOS: Xcode 16.2 with Apple Clang (LLVM 17.0.6), iPhoneOS SDK 18.2
6 changes: 3 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ podman_build windows
podman_build web
podman_build android

XCODE_SDK=15.4
OSX_SDK=14.5
IOS_SDK=17.5
XCODE_SDK=16.2
OSX_SDK=15.2
IOS_SDK=18.2
if [ ! -e "${files_root}"/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e "${files_root}"/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e "${files_root}"/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then
if [ ! -r "${files_root}"/Xcode_${XCODE_SDK}.xip ]; then
echo
Expand Down
118 changes: 0 additions & 118 deletions files/patches/osxcross-pr284-compiler-rt.patch

This file was deleted.