mirror of
https://github.com/godotengine/build-containers.git
synced 2025-12-31 21:48:41 +03:00
Update to Android NDK r23, Emscripten 3.1.14
Keeping NDK r21 for building Mono itself as it's not compatible yet with NDK r22+ (see godotengine/godot-mono-builds#68).
This commit is contained in:
@@ -4,27 +4,33 @@ FROM godot-mono:${img_version}
|
||||
ARG mono_version
|
||||
|
||||
ENV ANDROID_SDK_ROOT=/root/sdk
|
||||
ENV ANDROID_NDK_VERSION=21.4.7075529
|
||||
ENV ANDROID_NDK_VERSION=23.2.8568313
|
||||
ENV ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_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 \
|
||||
java-11-openjdk-devel ncurses-compat-libs && \
|
||||
mkdir -p sdk && cd sdk && \
|
||||
export CMDLINETOOLS=commandlinetools-linux-7302050_latest.zip && \
|
||||
export CMDLINETOOLS=commandlinetools-linux-8512546_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.3' 'platforms;android-30' 'cmake;3.18.1'
|
||||
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'
|
||||
|
||||
RUN cp -a /root/files/${mono_version} /root && \
|
||||
# Mono still not compatible with NDK r22+:
|
||||
# https://github.com/godotengine/godot-mono-builds/issues/68
|
||||
RUN export ANDROID_NDK_VERSION_MONO=21.4.7075529 && \
|
||||
export ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION_MONO} && \
|
||||
/root/sdk/cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION_MONO}" && \
|
||||
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 && \
|
||||
python3 bcl.py make -j --product=android && \
|
||||
cd /root && \
|
||||
rm -rf /root/${mono_version}
|
||||
rm -rf /root/${mono_version} && \
|
||||
rm -rf ${ANDROID_NDK_ROOT}
|
||||
|
||||
CMD /bin/bash
|
||||
|
||||
@@ -2,8 +2,7 @@ FROM fedora:36
|
||||
|
||||
WORKDIR /root
|
||||
|
||||
RUN dnf -y upgrade --setopt=install_weak_deps=False && \
|
||||
dnf -y install --setopt=install_weak_deps=False \
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
bash bzip2 curl file findutils git make nano patch pkgconfig python3-pip unzip which xz && \
|
||||
pip install scons==4.3.0
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
|
||||
|
||||
# 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-7533d08/ios-cross-arm64.zip && \
|
||||
curl -LO https://github.com/godotengine/godot-mono-builds/releases/download/release-fcf205c/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
|
||||
|
||||
@@ -3,7 +3,7 @@ FROM godot-mono:${img_version}
|
||||
|
||||
ARG mono_version
|
||||
|
||||
ENV EMSCRIPTEN_CLASSICAL=3.1.10
|
||||
ENV EMSCRIPTEN_CLASSICAL=3.1.14
|
||||
ENV EMSCRIPTEN_MONO=1.39.9
|
||||
|
||||
RUN if [ -z "${mono_version}" ]; then printf "\n\nArgument mono_version is mandatory!\n\n"; exit 1; fi && \
|
||||
|
||||
@@ -8,10 +8,8 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
|
||||
automake autoconf bzip2-devel cmake libicu-devel libtool libxml2-devel openssl-devel yasm && \
|
||||
git clone --progress https://github.com/tpoechtrager/osxcross.git && \
|
||||
cd /root/osxcross && \
|
||||
git checkout 610542781e0eabc6968b0c0719bbc8d25c992025 && \
|
||||
git checkout 17bb5e2d0a46533c1dd525cf4e9a80d88bd9f00e && \
|
||||
ln -s /root/files/MacOSX12.3.sdk.tar.xz /root/osxcross/tarballs && \
|
||||
sed -i build.sh -e "/ 12.1\*/a 12.3*) TARGET=darwin21.4; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;" && \
|
||||
sed -i build_compiler_rt.sh -e "s@BRANCH=main@BRANCH=release/14.x@g" && \
|
||||
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 && \
|
||||
|
||||
2
build.sh
2
build.sh
@@ -62,7 +62,7 @@ if [ ! -e ${mono_root} ]; then
|
||||
# Set up godot-mono-builds in tree
|
||||
git clone --progress https://github.com/godotengine/godot-mono-builds
|
||||
pushd godot-mono-builds
|
||||
git checkout 2fa04b9dc73a9e84037ef165c88f0cddfaa8705b
|
||||
git checkout fcf205c105bb2eb88dc85975887170c42675d245
|
||||
export MONO_SOURCE_ROOT=${mono_root}
|
||||
python3 patch_mono.py
|
||||
popd
|
||||
|
||||
Reference in New Issue
Block a user