mirror of
https://github.com/godotengine/build-containers.git
synced 2025-12-31 21:48:41 +03:00
Update various toolchains for 4.4
- Fedora 41 - SCons 4.8.1 - MinGW 12.0.0 with GCC 14.2.1 and binutils 2.42 - Xcode 16.2 (macOS 15.2, iOS 18.2)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 && \
|
||||
|
||||
@@ -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 && \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
README.md
12
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
|
||||
|
||||
6
build.sh
6
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
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
From b875d7c1360c8ff2077463d7a5a12e1cff1cc683 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
|
||||
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 ###
|
||||
Reference in New Issue
Block a user