Files
build-containers/Dockerfile.android
Rémi Verschelde 18b7ecfcd9 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).
2022-06-25 13:35:41 +02:00

37 lines
1.7 KiB
Docker

ARG img_version
FROM godot-mono:${img_version}
ARG mono_version
ENV ANDROID_SDK_ROOT=/root/sdk
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-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;32.0.0' 'platforms;android-32' 'cmake;3.18.1'
# 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 ${ANDROID_NDK_ROOT}
CMD /bin/bash