From c10a4e8bb734f6f588acfcec714220389e1e0798 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 28 Jan 2022 23:40:23 +0100 Subject: [PATCH] Updated the xcode, osx, and ios build containers, and also small fixes. Also removed 2 unneeded line from the container build script. --- tools/build-containers/Dockerfile.ios | 12 ++----- tools/build-containers/Dockerfile.osx | 10 +++--- tools/build-containers/Dockerfile.xcode | 40 +++++++++++++++++++++- tools/build-containers/build_containers.sh | 18 +++++----- 4 files changed, 55 insertions(+), 25 deletions(-) diff --git a/tools/build-containers/Dockerfile.ios b/tools/build-containers/Dockerfile.ios index 059f9f21..a3635b1c 100644 --- a/tools/build-containers/Dockerfile.ios +++ b/tools/build-containers/Dockerfile.ios @@ -1,7 +1,7 @@ ARG img_version FROM godot-osx:${img_version} -ENV IOS_SDK=14.4 +ENV IOS_SDK=14.5 RUN dnf -y install --setopt=install_weak_deps=False \ automake autoconf clang gcc gcc-c++ gcc-objc gcc-objc++ cmake libicu-devel libtool libxml2-devel llvm-devel openssl-devel perl python yasm && \ @@ -31,17 +31,9 @@ RUN dnf -y install --setopt=install_weak_deps=False \ mkdir /root/ioscross/x86_64_sim/usr && \ ln -s /root/ioscross/x86_64_sim/bin /root/ioscross/x86_64_sim/usr/bin + ENV OSXCROSS_IOS=not_nothing ENV IOSCROSS_ROOT=/root/ioscross ENV PATH="/root/ioscross/arm64/bin:/root/ioscross/arm64_sim/bin:/root/ioscross/x86_64_sim/bin:${PATH}" - -# Until we can build the cross-compiler, we include a pre-made build in the container. -RUN mkdir -p /root/aot-compilers/iphone-arm64 && \ - curl -LO https://github.com/godotengine/godot-mono-builds/releases/download/release-c3a9d31/ios-cross-arm64.zip && \ - dnf -y install --setopt=install_weak_deps=False p7zip && \ - 7za e ios-cross-arm64.zip ios-cross-arm64-release/bin/aarch64-apple-darwin-mono-sgen -o/root/aot-compilers/iphone-arm64 && \ - rm ios-cross-arm64.zip - - CMD /bin/bash diff --git a/tools/build-containers/Dockerfile.osx b/tools/build-containers/Dockerfile.osx index 3bb1e645..b3e7cbb8 100644 --- a/tools/build-containers/Dockerfile.osx +++ b/tools/build-containers/Dockerfile.osx @@ -1,14 +1,14 @@ ARG img_version FROM godot-fedora:${img_version} +#cmake + RUN dnf -y install --setopt=install_weak_deps=False \ - automake autoconf bzip2-devel clang libicu-devel libtool libxml2-devel llvm-devel openssl-devel yasm && \ + automake autoconf bzip2-devel clang libicu-devel libtool libxml2-devel llvm-devel openssl-devel yasm cmake && \ git clone --progress https://github.com/tpoechtrager/osxcross.git && \ cd /root/osxcross && \ - git checkout de6c72eff2d6013f5af46fba1fa205654c5cf5e2 && \ - ln -s /root/files/MacOSX11.1.sdk.tar.xz /root/osxcross/tarballs && \ - url -LO https://github.com/tpoechtrager/osxcross/pull/286.patch && \ - patch -p1 < 286.patch && \ + git checkout 0f87f567dfaf98460244471ad6c0f4311d62079c && \ + ln -s /root/files/MacOSX11.3.sdk.tar.xz /root/osxcross/tarballs && \ UNATTENDED=1 ./build.sh && \ ./build_compiler_rt.sh diff --git a/tools/build-containers/Dockerfile.xcode b/tools/build-containers/Dockerfile.xcode index c8de369c..d9d774d2 100644 --- a/tools/build-containers/Dockerfile.xcode +++ b/tools/build-containers/Dockerfile.xcode @@ -2,12 +2,14 @@ ARG img_version FROM godot-fedora:${img_version} RUN dnf -y install --setopt=install_weak_deps=False \ - autoconf automake xar xar-devel xz-devel libtool clang cmake fuse fuse-devel libxml2-devel libicu-devel compat-openssl10-devel bzip2-devel kmod cpio && \ + clang xar xar-devel xz-devel cpio && \ git clone --progress https://github.com/NiklasRosenstein/pbzx && \ cd pbzx && \ git checkout 2a4d7c3300c826d918def713a24d25c237c8ed53 && \ clang -O3 -llzma -lxar -I /usr/local/include pbzx.c -o pbzx + + CMD mkdir -p /root/xcode && \ cd /root/xcode && \ xar -xf /root/files/Xcode_12.4.xip && \ @@ -37,3 +39,39 @@ CMD mkdir -p /root/xcode && \ cd /tmp && \ tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SDK} && \ rm -rf ${IOS_SDK} + +#XCODE_SDK=12.5.1 +#OSX_SDK=11.3 +#IOS_SDK=14.5 + +CMD mkdir -p /root/xcode && \ + cd /root/xcode && \ + xar -xf /root/files/Xcode_12.5.1.xip && \ + /root/pbzx/pbzx -n Content | cpio -i && \ + export OSX_SDK=MacOSX11.3.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} && \ + cd /root/xcode && \ + export IOS_SDK=iPhoneOS14.5.sdk && \ + export IOS_SIMULATOR_SDK=iPhoneSimulator14.5.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++/ && \ + cd /tmp && \ + tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SDK} && \ + rm -rf ${IOS_SDK} diff --git a/tools/build-containers/build_containers.sh b/tools/build-containers/build_containers.sh index 7c849303..76d39400 100755 --- a/tools/build-containers/build_containers.sh +++ b/tools/build-containers/build_containers.sh @@ -17,26 +17,26 @@ export podman_build="$podman build --build-arg img_version=${img_version}" $podman build -v ${files_root}:/root/files -t godot-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log $podman_build -t godot-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log - -$podman_build -t godot-mono:${img_version} -f Dockerfile.mono . 2>&1 | tee logs/mono.log -$podman_build -t godot-mono-glue:${img_version} -f Dockerfile.mono-glue . 2>&1 | tee logs/mono-glue.log $podman_build -t godot-windows:${img_version} -f Dockerfile.windows --ulimit nofile=65536 . 2>&1 | tee logs/windows.log $podman_build -t godot-javascript:${img_version} -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log $podman_build -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log -if [ ! -e files/MacOSX10.14.sdk.tar.xz ] || [ ! -e files/iPhoneOS12.4.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator12.4.sdk.tar.xz ]; then - if [ ! -e files/Xcode_10.3.xip ]; then - echo "files/Xcode_10.3.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID" +XCODE_SDK=12.5.1 +OSX_SDK=11.3 +IOS_SDK=14.5 +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." exit 1 fi echo "Building OSX and iOS SDK packages. This will take a while" $podman_build -t godot-xcode-packer:${img_version} -f Dockerfile.xcode -v ${files_root}:/root/files . 2>&1 | tee logs/xcode.log - $podman run -it --rm -v ${files_root}:/root/files godot-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.logw + $podman run -it --rm -v ${files_root}:/root/files godot-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log fi -$podman_build -t godot-osx:${img_version} -f Dockerfile.osx . 2>&1 | tee logs/osx.log -$podman_build -t godot-ios:${img_version} -f Dockerfile.ios . 2>&1 | tee logs/ios.log +$podman_build -t godot-osx:${img_version} -v ${files_root}:/root/files -f Dockerfile.osx . 2>&1 | tee logs/osx.log +$podman_build -t godot-ios:${img_version} -v ${files_root}:/root/files -f Dockerfile.ios . 2>&1 | tee logs/ios.log if [ ! -e files/msvc2017.tar ]; then echo