From 063419321df948bebdfbe6adedc6dca22355ddd3 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 20 Apr 2024 17:44:49 +0200 Subject: [PATCH] Updated the build containers based on godot's. --- misc/build-containers/Dockerfile.android | 6 ++-- misc/build-containers/Dockerfile.base | 4 +-- misc/build-containers/Dockerfile.ios | 19 ++++++----- misc/build-containers/Dockerfile.javascript | 6 ++-- misc/build-containers/Dockerfile.linux | 35 ++++++++++++--------- misc/build-containers/Dockerfile.osx | 20 +++++++----- misc/build-containers/Dockerfile.xcode | 21 ++++--------- misc/build-containers/build_containers.sh | 6 ++-- 8 files changed, 58 insertions(+), 59 deletions(-) diff --git a/misc/build-containers/Dockerfile.android b/misc/build-containers/Dockerfile.android index 47284250a..610fec57a 100644 --- a/misc/build-containers/Dockerfile.android +++ b/misc/build-containers/Dockerfile.android @@ -6,13 +6,13 @@ ENV ANDROID_NDK_VERSION=23.2.8568313 ENV ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION} RUN dnf -y install --setopt=install_weak_deps=False \ - gcc gcc-c++ java-11-openjdk-devel ncurses-compat-libs && \ + gcc gcc-c++ java-17-openjdk-devel ncurses-compat-libs && \ mkdir -p sdk && cd sdk && \ - export CMDLINETOOLS=commandlinetools-linux-8512546_latest.zip && \ + export CMDLINETOOLS=commandlinetools-linux-11076708_latest.zip && \ curl -LO https://dl.google.com/android/repository/${CMDLINETOOLS} && \ 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;32.0.0' 'platforms;android-32' 'cmake;3.18.1' + cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION}" 'cmdline-tools;latest' 'build-tools;34.0.0' 'platforms;android-34' 'cmake;3.22.1' CMD /bin/bash diff --git a/misc/build-containers/Dockerfile.base b/misc/build-containers/Dockerfile.base index 98a0f8b24..c5e0a86f9 100644 --- a/misc/build-containers/Dockerfile.base +++ b/misc/build-containers/Dockerfile.base @@ -1,9 +1,9 @@ -FROM fedora:36 +FROM fedora:39 WORKDIR /root RUN dnf -y install --setopt=install_weak_deps=False \ bash bzip2 curl file findutils git make nano patch pkgconfig python3-pip unzip which xz yasm && \ - pip install scons==4.4.0 + pip install scons==4.6.0 CMD /bin/bash diff --git a/misc/build-containers/Dockerfile.ios b/misc/build-containers/Dockerfile.ios index 93ebbc267..dd7d7cd09 100644 --- a/misc/build-containers/Dockerfile.ios +++ b/misc/build-containers/Dockerfile.ios @@ -1,28 +1,27 @@ ARG img_version FROM pandemonium-osx:${img_version} -ENV IOS_SDK=15.4 +ENV IOS_SDK=17.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.git && \ cd /root/cctools-port && \ - git checkout 04663295d0425abfac90a42440a7ec02d7155fea && \ + git checkout a98286d858210b209395624477533c0bde05556a && \ # arm64 device usage_examples/ios_toolchain/build.sh /root/files/iPhoneOS${IOS_SDK}.sdk.tar.xz arm64 && \ mkdir -p /root/ioscross/arm64 && \ mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64 && \ mkdir /root/ioscross/arm64/usr && \ ln -s /root/ioscross/arm64/bin /root/ioscross/arm64/usr/bin && \ + # Prepare for simulator builds + sed -i '/WRAPPER_SDKDIR/s/iPhoneOS/iPhoneSimulator/' usage_examples/ios_toolchain/build.sh && \ # arm64 simulator - # Disabled for now as it doesn't work with cctools-port and current LLVM: - # Cf. https://github.com/tpoechtrager/cctools-port/issues/102 - #sed -i 's/miphoneos-version-min/mios-simulator-version-min/g' usage_examples/ios_toolchain/wrapper.c && \ - #usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz arm64 && \ - #mkdir -p /root/ioscross/arm64_sim && \ - #mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64_sim && \ - #mkdir /root/ioscross/arm64_sim/usr && \ - #ln -s /root/ioscross/arm64_sim/bin /root/ioscross/arm64_sim/usr/bin && \ + usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz arm64 && \ + mkdir -p /root/ioscross/arm64_sim && \ + mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64_sim && \ + mkdir /root/ioscross/arm64_sim/usr && \ + ln -s /root/ioscross/arm64_sim/bin /root/ioscross/arm64_sim/usr/bin && \ # x86_64 simulator sed -i 's#^TRIPLE=.*#TRIPLE="x86_64-apple-darwin11"#' usage_examples/ios_toolchain/build.sh && \ usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz x86_64 && \ diff --git a/misc/build-containers/Dockerfile.javascript b/misc/build-containers/Dockerfile.javascript index 3bb548676..3e1a2b1d7 100644 --- a/misc/build-containers/Dockerfile.javascript +++ b/misc/build-containers/Dockerfile.javascript @@ -1,11 +1,9 @@ ARG img_version FROM pandemonium-fedora:${img_version} -ENV EMSCRIPTEN_VERSION=3.1.14 +ENV EMSCRIPTEN_VERSION=3.1.53 -RUN dnf -y install --setopt=install_weak_deps=False \ - java-openjdk && \ - git clone --branch ${EMSCRIPTEN_VERSION} --progress https://github.com/emscripten-core/emsdk emsdk && \ +RUN git clone --branch ${EMSCRIPTEN_VERSION} --progress https://github.com/emscripten-core/emsdk && \ emsdk/emsdk install ${EMSCRIPTEN_VERSION} && \ emsdk/emsdk activate ${EMSCRIPTEN_VERSION} diff --git a/misc/build-containers/Dockerfile.linux b/misc/build-containers/Dockerfile.linux index 68499d1ee..9aa2e4617 100644 --- a/misc/build-containers/Dockerfile.linux +++ b/misc/build-containers/Dockerfile.linux @@ -4,31 +4,36 @@ FROM pandemonium-fedora:${img_version} # Todo host the buildroot files somewhere ENV GODOT_SDK_LINUX_X86_64=/root/x86_64-godot-linux-gnu_sdk-buildroot -ENV GODOT_SDK_LINUX_X86=/root/i686-godot-linux-gnu_sdk-buildroot -ENV GODOT_SDK_LINUX_ARMHF=/root/arm-godot-linux-gnueabihf_sdk-buildroot +ENV GODOT_SDK_LINUX_X86_32=/root/i686-godot-linux-gnu_sdk-buildroot +ENV GODOT_SDK_LINUX_ARM64=/root/aarch64-godot-linux-gnu_sdk-buildroot +ENV GODOT_SDK_LINUX_ARM32=/root/arm-godot-linux-gnueabihf_sdk-buildroot + ENV BASE_PATH=${PATH} -RUN dnf -y install --setopt=install_weak_deps=False \ - libxcrypt-compat yasm && \ - curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2021-02-11/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \ +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 && \ 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 && \ - rm -f bin/{aclocal*,auto*,libtool*,m4} && \ cd /root && \ - curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2021-02-11/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 && \ - ./relocate-sdk.sh && \ - rm -f bin/{aclocal*,auto*,libtool*,m4} && \ - cd /root && \ - curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2021-02-11/i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \ + curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/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 && \ - rm -f bin/{aclocal*,auto*,libtool*,m4} + cd /root && \ + curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/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 && \ + 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 && \ + ./relocate-sdk.sh + CMD /bin/bash diff --git a/misc/build-containers/Dockerfile.osx b/misc/build-containers/Dockerfile.osx index 5dbd56543..27288a9bb 100644 --- a/misc/build-containers/Dockerfile.osx +++ b/misc/build-containers/Dockerfile.osx @@ -1,17 +1,23 @@ ARG img_version FROM pandemonium-fedora:${img_version} -# Todo: This osxcross link is temporary, until a github url change is fixed in osxcross master. +ENV OSX_SDK=14.2 RUN dnf -y install --setopt=install_weak_deps=False \ - automake autoconf bzip2-devel cmake gcc gcc-c++ libicu-devel libtool libxml2-devel openssl-devel yasm && \ - git clone --progress https://github.com/Relintai/osxcross.git && \ + 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 7be19917bba24a9129838d7f0cca49944cd48388 && \ - ln -s /root/files/MacOSX12.3.sdk.tar.xz /root/osxcross/tarballs && \ + git checkout ff8d100f3f026b4ffbe4ce96d8aac4ce06f1278b && \ + curl -LO https://github.com/tpoechtrager/osxcross/pull/415.patch && \ + git apply 415.patch && \ + ln -s /root/files/MacOSX${OSX_SDK}.sdk.tar.xz /root/osxcross/tarballs && \ export UNATTENDED=1 && \ - # Custom build to ensure we have Clang version matching Xcode SDK. - CLANG_VERSION=13.0.1 ENABLE_CLANG_INSTALL=1 INSTALLPREFIX=/usr ./build_clang.sh && \ + 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 && \ ./build.sh && \ ./build_compiler_rt.sh && \ rm -rf /root/osxcross/build diff --git a/misc/build-containers/Dockerfile.xcode b/misc/build-containers/Dockerfile.xcode index 72aa71bec..09a69225d 100644 --- a/misc/build-containers/Dockerfile.xcode +++ b/misc/build-containers/Dockerfile.xcode @@ -3,9 +3,9 @@ FROM pandemonium-fedora:${img_version} RUN dnf -y install --setopt=install_weak_deps=False \ clang xar xar-devel xz-devel cpio && \ - git clone --progress https://github.com/NiklasRosenstein/pbzx && \ + git clone --progress https://github.com/nrosenstein-stuff/pbzx && \ cd pbzx && \ - git checkout 2a4d7c3300c826d918def713a24d25c237c8ed53 && \ + git checkout bf536e167f2e514866f91d7baa0df1dff5a13711 && \ clang -O3 -llzma -lxar -I /usr/local/include pbzx.c -o pbzx @@ -19,12 +19,6 @@ CMD mkdir -p /root/xcode && \ /root/pbzx/pbzx -n Content | cpio -i && \ export OSX_SDK=MacOSX${OSX_SDKV}.sdk && \ cp -r Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /tmp/${OSX_SDK} && \ - mkdir -p /tmp/${OSX_SDK}/usr/include/c++ && \ - cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${OSX_SDK}/usr/include/c++/ && \ - mkdir -p mkdir -p /tmp/${OSX_SDK}/usr/share/man && \ - cp -rf Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1 \ - Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man3 \ - Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man5 /tmp/${OSX_SDK}/usr/share/man/ && \ cd /tmp && \ tar -cJf /root/files/${OSX_SDK}.tar.xz ${OSX_SDK} && \ rm -rf ${OSX_SDK} && \ @@ -32,15 +26,12 @@ CMD mkdir -p /root/xcode && \ export IOS_SDK=iPhoneOS${IOS_SDKV}.sdk && \ export IOS_SIMULATOR_SDK=iPhoneSimulator${IOS_SDKV}.sdk && \ cp -r Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk /tmp/${IOS_SDK} && \ - mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \ - cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \ cd /tmp && \ tar -cJf /root/files/${IOS_SDK}.tar.xz ${IOS_SDK} && \ rm -rf ${IOS_SDK} && \ cd /root/xcode && \ - cp -r Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk /tmp/${IOS_SDK} && \ - mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \ - cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \ + cp -r Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk /tmp/${IOS_SIMULATOR_SDK} && \ cd /tmp && \ - tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SDK} && \ - rm -rf ${IOS_SDK} + tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SIMULATOR_SDK} && \ + rm -rf ${IOS_SIMULATOR_SDK} + diff --git a/misc/build-containers/build_containers.sh b/misc/build-containers/build_containers.sh index 937ae9a05..3e3a795f5 100755 --- a/misc/build-containers/build_containers.sh +++ b/misc/build-containers/build_containers.sh @@ -22,9 +22,9 @@ $podman_build -t pandemonium-windows:${img_version} -f Dockerfile.windows . 2>&1 $podman_build -t pandemonium-javascript:${img_version} -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log $podman_build -t pandemonium-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log -XCODE_SDK=13.3.1 -OSX_SDK=12.3 -IOS_SDK=15.4 +XCODE_SDK=15.2 +OSX_SDK=14.2 +IOS_SDK=17.2 if [ ! -e files/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then if [ ! -e files/Xcode_${XCODE_SDK}.xip ]; then echo "files/Xcode_${XCODE_SDK}.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID."