BuildAndroid-aarch64.dockerfile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. FROM ubuntu:noble
  2. WORKDIR /usr/local/app
  3. RUN apt-get update && apt-get install -y openjdk-17-jdk python3 pipx cmake ccache ninja-build wget git xz-utils
  4. ENV PIPX_HOME="/opt/pipx"
  5. ENV PIPX_BIN_DIR="/usr/local/bin"
  6. ENV PIPX_MAN_DIR="/usr/local/share/man"
  7. RUN pipx install 'conan'
  8. RUN pipx install 'sdkmanager'
  9. RUN conan profile detect
  10. ENV DEPS="dependencies-android-arm64-v8a.tgz"
  11. COPY CI/install_conan_dependencies.sh CI/install_conan_dependencies.sh
  12. RUN DEPS_VERSION=$(grep '^RELEASE_TAG=' CI/install_conan_dependencies.sh | cut -d'"' -f2) && \
  13. echo "Using DEPS_VERSION=$DEPS_VERSION" && \
  14. wget --https-only --max-redirect=20 https://github.com/vcmi/vcmi-dependencies/releases/download/$DEPS_VERSION/$DEPS
  15. RUN conan cache restore $DEPS
  16. RUN rm $DEPS
  17. RUN PROFILE_PATH=$(conan profile path default) && printf "\n[replace_requires]\nboost/*: boost/1.88.0\n" >> "$PROFILE_PATH"
  18. ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
  19. ENV ANDROID_HOME="/usr/lib/android-sdk"
  20. ENV GRADLE_USER_HOME="/vcmi/.cache/gradle"
  21. ENV SDK_VERSION="35"
  22. ENV NDK_VERSION="29.0.14206865"
  23. RUN sdkmanager --install "platform-tools" "platforms;android-$SDK_VERSION" "ndk;$NDK_VERSION"
  24. RUN yes | sdkmanager --licenses
  25. CMD ["sh", "-c", " \
  26. # switch to mounted dir
  27. cd /vcmi ; \
  28. # prepare Gradle config
  29. mkdir -p $GRADLE_USER_HOME ; \
  30. echo android.bundle.enableUncompressedNativeLibs=true > $GRADLE_USER_HOME/gradle.properties ; \
  31. # generate CMake toolchain
  32. conan install . --output-folder=conan-generated --build=never --profile=dependencies/conan_profiles/android-64 --profile=dependencies/conan_profiles/base/android-system -c tools.android:ndk_path=$ANDROID_HOME/ndk/$NDK_VERSION && \
  33. # build
  34. cmake --preset android-daily-release && \
  35. cmake --build --preset android-daily-release \
  36. "]