diff --git a/Dockerfile.base b/Dockerfile.base index 012d381..f5fdf7f 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -1,4 +1,4 @@ -FROM fedora:40 +FROM fedora:41 WORKDIR /root @@ -6,8 +6,8 @@ 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 \ dotnet-sdk-8.0 && \ - pip install scons==4.8.0 + pip install scons==4.8.1 CMD /bin/bash diff --git a/Dockerfile.ios b/Dockerfile.ios index 399a731..c3bf744 100644 --- a/Dockerfile.ios +++ b/Dockerfile.ios @@ -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 && \ diff --git a/Dockerfile.linux b/Dockerfile.linux index 6bd150c..7800602 100644 --- a/Dockerfile.linux +++ b/Dockerfile.linux @@ -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 && \ diff --git a/Dockerfile.osx b/Dockerfile.osx index 7785cca..91bf0c0 100644 --- a/Dockerfile.osx +++ b/Dockerfile.osx @@ -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 diff --git a/Dockerfile.windows b/Dockerfile.windows index 4eca590..c0ccb09 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -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 diff --git a/README.md b/README.md index 9970088..6a627e3 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/build.sh b/build.sh index 4438c8f..9320766 100755 --- a/build.sh +++ b/build.sh @@ -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 diff --git a/files/patches/osxcross-pr284-compiler-rt.patch b/files/patches/osxcross-pr284-compiler-rt.patch deleted file mode 100644 index f38c283..0000000 --- a/files/patches/osxcross-pr284-compiler-rt.patch +++ /dev/null @@ -1,118 +0,0 @@ -From b875d7c1360c8ff2077463d7a5a12e1cff1cc683 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= -Date: Mon, 12 Jul 2021 13:34:32 +0200 -Subject: [PATCH] compiler-rt: Add option to automate install process - -Also mention that compiler-rt can be needed to build code using -`__builtin_available()`. - -Fixes #278. ---- - README.COMPILER-RT.md | 4 ++++ - README.md | 3 +++ - build_compiler_rt.sh | 33 ++++++++++++++++++++++++--------- - 3 files changed, 31 insertions(+), 9 deletions(-) - -diff --git a/README.COMPILER-RT.md b/README.COMPILER-RT.md -index b2754dfcf..dced89686 100644 ---- a/README.COMPILER-RT.md -+++ b/README.COMPILER-RT.md -@@ -10,6 +10,10 @@ Ensure you have finished `build.sh`, - - then run: `./build_compiler_rt.sh`. - -+By default, installation steps for compiler-rt will be printed to the terminal -+to run manually, but you can automate the installation process by defining -+`ENABLE_COMPILER_RT_INSTALL`. -+ - You can verify compiler-rt is working by invoking the following command: - - echo "int main(void){return 0;}" | xcrun clang -xc -o/dev/null -v - 2>&1 | \ -diff --git a/README.md b/README.md -index 60d19f917..f32bf626c 100644 ---- a/README.md -+++ b/README.md -@@ -33,6 +33,9 @@ It also includes scripts for optionally building - * the "compiler-rt" runtime library, and - * the `llvm-dsymutil` tool required for debugging. - -+Note: The "compiler-rt" library can be needed to link code that uses the -+`__builtin_available()` runtime version check. -+ - - ### WHAT CAN BE BUILT WITH IT? ### - -diff --git a/build_compiler_rt.sh b/build_compiler_rt.sh -index 8f47262a2..508742cab 100755 ---- a/build_compiler_rt.sh -+++ b/build_compiler_rt.sh -@@ -182,22 +182,39 @@ fi - rm -f $BUILD_DIR/.compiler-rt_build_complete - - -+# Installation. Can be either automated (ENABLE_COMPILER_RT_INSTALL) or will -+# print the commands that the user should run manually. -+ -+function print_or_run() { -+ if [ -z "$ENABLE_COMPILER_RT_INSTALL" ]; then -+ echo "$@" -+ else -+ $@ -+ fi -+} -+ - echo "" - echo "" - echo "" --echo "Please run the following commands by hand to install compiler-rt:" -+if [ -z "$ENABLE_COMPILER_RT_INSTALL" ]; then -+ echo "Please run the following commands by hand to install compiler-rt:" -+else -+ echo "Installing compiler-rt headers and libraries to the following paths:" -+ echo " ${CLANG_INCLUDE_DIR}" -+ echo " ${CLANG_DARWIN_LIB_DIR}" -+fi - echo "" - --echo "mkdir -p ${CLANG_INCLUDE_DIR}" --echo "mkdir -p ${CLANG_DARWIN_LIB_DIR}" --echo "cp -rv $BUILD_DIR/compiler-rt/compiler-rt/include/sanitizer ${CLANG_INCLUDE_DIR}" -+print_or_run mkdir -p ${CLANG_INCLUDE_DIR} -+print_or_run mkdir -p ${CLANG_DARWIN_LIB_DIR} -+print_or_run cp -rv $BUILD_DIR/compiler-rt/compiler-rt/include/sanitizer ${CLANG_INCLUDE_DIR} - - if [ $USE_CMAKE -eq 1 ]; then - - ### CMAKE ### - -- echo "cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.a ${CLANG_DARWIN_LIB_DIR}" -- echo "cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.dylib ${CLANG_DARWIN_LIB_DIR}" -+ print_or_run cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.a ${CLANG_DARWIN_LIB_DIR} -+ print_or_run cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.dylib ${CLANG_DARWIN_LIB_DIR} - - ### CMAKE END ### - -@@ -209,7 +226,7 @@ else - - function print_install_command() { - if [ -f "$1" ]; then -- echo "cp $PWD/compiler-rt/$1 ${CLANG_DARWIN_LIB_DIR}/$2" -+ print_or_run cp $PWD/compiler-rt/$1 ${CLANG_DARWIN_LIB_DIR}/$2 - fi - } - -@@ -219,14 +236,12 @@ else - print_install_command "cc_kext/libcompiler_rt.a" "libclang_rt.cc_kext.a" - print_install_command "profile_osx/libcompiler_rt.a" "libclang_rt.profile_osx.a" - -- - print_install_command "ubsan_osx_dynamic/libcompiler_rt.dylib" \ - "libclang_rt.ubsan_osx_dynamic.dylib" - - print_install_command "asan_osx_dynamic/libcompiler_rt.dylib" \ - "libclang_rt.asan_osx_dynamic.dylib" - -- - popd &>/dev/null - - ### MAKE END ###