Toolchain updates: Fedora 34, Emscripten 2.0.25, and more

- Update base image from Fedora 33 to Fedora 34 (newer GCC, Clang, MinGW and
  binutils).
- Update Emscripten for classical builds from 2.0.15 to 2.0.25.
- Update Android SDK tools to latest version, and build-tools from 30.0.1 to
  30.0.3.
- Update osxcross and ios cctools-port to latest commits.
- Update iOS Mono build's min target version to match Godot's buildsystem.
  See #83 for details.
This commit is contained in:
Rémi Verschelde
2021-07-12 12:38:02 +02:00
parent 8f8fdf5ba8
commit b409e6b9e9
6 changed files with 20 additions and 21 deletions

View File

@@ -11,19 +11,18 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
dnf -y install --setopt=install_weak_deps=False \
java-1.8.0-openjdk-devel ncurses-compat-libs && \
mkdir -p sdk && cd sdk && \
curl -LO https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip && \
unzip commandlinetools-linux-6858069_latest.zip && \
rm commandlinetools-linux-6858069_latest.zip && \
export CMDLINETOOLS=commandlinetools-linux-7302050_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;30.0.1' 'platforms;android-29' 'cmake;3.10.2.4988404'
cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION}" 'cmdline-tools;latest' 'build-tools;30.0.3' 'platforms;android-29' 'cmake;3.18.1'
RUN cp -a /root/files/${mono_version} /root && \
export MONO_SOURCE_ROOT=/root/${mono_version} && \
cd /root/${mono_version}/godot-mono-builds && \
python3 android.py configure -j --target=all-runtime && \
python3 android.py make -j --target=all-runtime && \
cd /root/${mono_version} && git clean -fdx && NOCONFIGURE=1 ./autogen.sh && \
cd /root/${mono_version}/godot-mono-builds && \
python3 bcl.py make -j --product=android && \
cd /root && \
rm -rf /root/${mono_version}

View File

@@ -1,10 +1,10 @@
FROM fedora:33
FROM fedora:34
WORKDIR /root
RUN dnf -y upgrade --setopt=install_weak_deps=False && \
dnf -y install --setopt=install_weak_deps=False \
bash bzip2 curl git make nano patch pkgconfig python-unversioned-command python3-pip unzip which xz && \
bash bzip2 curl file findutils git make nano patch pkgconfig python3-pip unzip which xz && \
pip install scons==4.1.0
CMD /bin/bash

View File

@@ -9,7 +9,7 @@ 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 && \
git clone --progress https://github.com/tpoechtrager/cctools-port.git && \
cd /root/cctools-port && \
git checkout 14ab64360c556c1263e022318ee4be1077d7a839 && \
git checkout 236a426c1205a3bfcf0dbb2e2faf2296f0a100e5 && \
# arm64 device
usage_examples/ios_toolchain/build.sh /root/files/iPhoneOS${IOS_SDK}.sdk.tar.xz arm64 && \
mkdir -p /root/ioscross/arm64 && \
@@ -42,12 +42,15 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
cd /root/${mono_version} && \
cd godot-mono-builds && \
export MONO_SOURCE_ROOT=/root/${mono_version} && \
python3 ios.py configure -j --verbose --target=arm64 --ios-toolchain ${IOSCROSS_ROOT}/arm64 --ios-sdk ${IOSCROSS_ROOT}/arm64/SDK/iPhoneOS${IOS_SDK}.sdk --osx-toolchain ${OSXCROSS_ROOT} && \
python3 ios.py make -j --verbose --target=arm64 && \
#python3 ios.py configure -j --verbose --target=arm64-sim --ios-toolchain ${IOSCROSS_ROOT}/arm64_sim --ios-sdk ${IOSCROSS_ROOT}/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk --osx-toolchain ${OSXCROSS_ROOT} && \
#python3 ios.py make -j --verbose --target=arm64-sim && \
python3 ios.py configure -j --verbose --target=x86_64 --ios-toolchain ${IOSCROSS_ROOT}/x86_64_sim --ios-sdk ${IOSCROSS_ROOT}/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk --osx-toolchain ${OSXCROSS_ROOT} && \
python3 ios.py make -j --verbose --target=x86_64 && \
python3 ios.py configure -j --target=arm64 --ios-version-min 10.0 --osx-toolchain ${OSXCROSS_ROOT} \
--ios-toolchain ${IOSCROSS_ROOT}/arm64 --ios-sdk ${IOSCROSS_ROOT}/arm64/SDK/iPhoneOS${IOS_SDK}.sdk && \
python3 ios.py make -j --target=arm64 && \
#python3 ios.py configure -j --target=arm64-sim --ios-version-min 10.0 --osx-toolchain ${OSXCROSS_ROOT} \
# --ios-toolchain ${IOSCROSS_ROOT}/arm64_sim --ios-sdk ${IOSCROSS_ROOT}/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk && \
#python3 ios.py make -j --target=arm64-sim && \
python3 ios.py configure -j --target=x86_64 --ios-version-min 10.0 --osx-toolchain ${OSXCROSS_ROOT} \
--ios-toolchain ${IOSCROSS_ROOT}/x86_64_sim --ios-sdk ${IOSCROSS_ROOT}/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk && \
python3 ios.py make -j --target=x86_64 && \
python3 bcl.py make -j --product=ios && \
# TODO: Emable once godot-mono-builds supports osxcross for the cross-compiler.
# It requires having a build of libclang with support for iOS arm64 + changes to the build scripts.

View File

@@ -3,7 +3,7 @@ FROM godot-mono:${img_version}
ARG mono_version
ENV EMSCRIPTEN_CLASSICAL=2.0.15
ENV EMSCRIPTEN_CLASSICAL=2.0.25
ENV EMSCRIPTEN_MONO=1.39.9
RUN if [ -z "${mono_version}" ]; then printf "\n\nArgument mono_version is mandatory!\n\n"; exit 1; fi && \
@@ -23,8 +23,6 @@ RUN if [ -z "${mono_version}" ]; then printf "\n\nArgument mono_version is manda
python3 patch_emscripten.py && \
python3 wasm.py configure -j --target=runtime && \
python3 wasm.py make -j --target=runtime && \
cd /root/${mono_version} && git clean -fdx && NOCONFIGURE=1 ./autogen.sh && \
cd /root/${mono_version}/godot-mono-builds && \
python3 bcl.py make -j --product wasm && \
cd /root && \
rm -rf /root/${mono_version}

View File

@@ -5,8 +5,7 @@ ARG mono_version
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \
dnf -y install --setopt=install_weak_deps=False \
gcc gcc-c++ make yasm \
autoconf automake cmake gettext libtool perl && \
autoconf automake cmake gcc gcc-c++ gettext libtool perl python-unversioned-command && \
cp -a /root/files/${mono_version} /root && \
cd /root/${mono_version} && \
NOCONFIGURE=1 ./autogen.sh && \

View File

@@ -8,7 +8,7 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
automake autoconf bzip2-devel clang libicu-devel libtool libxml2-devel llvm-devel openssl-devel yasm && \
git clone --progress https://github.com/tpoechtrager/osxcross.git && \
cd /root/osxcross && \
git checkout 61925a29c404fc547ce9d51eb2ee4a09bd6533da && \
git checkout 447cf3b3ea4323d24648f5f7f775f5977a0d15bd && \
ln -s /root/files/MacOSX11.1.sdk.tar.xz /root/osxcross/tarballs && \
UNATTENDED=1 ./build.sh