| # Copyright 2021 The IREE Authors | |
| # | |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| # See https://llvm.org/LICENSE.txt for license information. | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| # An image for cross-compiling IREE's TFLite Java Bindings with Gradle and | |
| # CMake. | |
| ARG JDK_VERSION=11 | |
| ARG GRADLE_VERSION=7.1.1 | |
| ARG GRADLE_DIST=bin | |
| ARG ANDROID_SDK_VERSION=7583922 | |
| ARG ANDROID_NDK_VERSION=21.4.7075529 | |
| FROM gcr.io/iree-oss/util@sha256:40846b4aea5886af3250399d6adfdb3e1195a8b0177706bb0375e812d62dc49c AS install-deps | |
| ARG GRADLE_VERSION | |
| ARG GRADLE_DIST | |
| ARG ANDROID_SDK_VERSION | |
| # Download and install Gradle | |
| RUN cd /opt && \ | |
| wget -q https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-${GRADLE_DIST}.zip && \ | |
| unzip gradle*.zip && \ | |
| rm gradle*.zip && \ | |
| ln -s /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/bin/gradle | |
| # Download and install Android SDK | |
| # Note: Uses the latest SDK version from https://developer.android.com/studio, | |
| # however Gradle will automatically download any additional SDK/tooling versions | |
| # as necessary. | |
| ENV ANDROID_SDK_ROOT /opt/android-sdk | |
| RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \ | |
| wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \ | |
| unzip *tools*linux*.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \ | |
| mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/tools && \ | |
| rm *tools*linux*.zip | |
| FROM gcr.io/iree-oss/cmake@sha256:9d9953acf5ca0cf1ff3e8de32f10f24dfab1c4e8ec5d1fc047f556024ee4bed6 as final | |
| ARG ANDROID_SDK_VERSION | |
| ARG ANDROID_NDK_VERSION | |
| ARG GRADLE_VERSION | |
| ENV ANDROID_SDK_ROOT /opt/android-sdk | |
| # Download and install openjdk-11 | |
| ARG JDK_VERSION | |
| RUN apt-get update && apt-get install -y openjdk-11-jdk | |
| # Copy /opt/ (Gradle + Android SDK) thenlink Gradle bin | |
| COPY --from=install-deps /opt/ /opt/ | |
| RUN ln -s /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/bin/gradle | |
| # Accept the license agreements of the Android SDK components | |
| RUN yes | ${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager --licenses | |
| # Install the Android NDK | |
| RUN /opt/android-sdk/cmdline-tools/tools/bin/sdkmanager --install "ndk;$ANDROID_NDK_VERSION" | |
| # Define environment variables for the NDK/SDK | |
| ENV ANDROID_HOME ${ANDROID_SDK_ROOT} | |
| ENV ANDROID_NDK /opt/android-sdk/ndk/${ANDROID_NDK_VERSION} |