BuildAndroid-aarch64.dockerfile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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<2.0'
  8. RUN pipx install 'sdkmanager==0.6.10'
  9. RUN conan profile new conan --detect
  10. RUN wget https://github.com/vcmi/vcmi-dependencies/releases/download/1.3/dependencies-android-arm64-v8a.txz
  11. RUN tar -xf dependencies-android-arm64-v8a.txz -C ~/.conan
  12. RUN rm dependencies-android-arm64-v8a.txz
  13. ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
  14. ENV ANDROID_HOME="/usr/lib/android-sdk"
  15. ENV GRADLE_USER_HOME="/vcmi/.cache/grandle"
  16. ENV GENERATE_ONLY_BUILT_CONFIG=1
  17. RUN sdkmanager --install "platform-tools"
  18. RUN sdkmanager --install "platforms;android-34"
  19. RUN yes | sdkmanager --licenses
  20. RUN conan download android-ndk/r25c@:4db1be536558d833e52e862fd84d64d75c2b3656 -r conancenter
  21. CMD ["sh", "-c", " \
  22. # switch to mounted dir
  23. cd /vcmi ; \
  24. # install conan stuff
  25. conan install . --install-folder=conan-generated --no-imports --build=never --profile:build=default --profile:host=CI/conan/android-64-ndk ; \
  26. # link conan ndk that grandle can find it
  27. mkdir -p /usr/lib/android-sdk/ndk ; \
  28. ln -s -T ~/.conan/data/android-ndk/r25c/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin /usr/lib/android-sdk/ndk/25.2.9519653 ; \
  29. # build
  30. cmake --preset android-daily-release ; \
  31. cmake --build --preset android-daily-release \
  32. "]