| # Version: 1.0 | |
| # Dockerfile for building libzip for android | |
| # https://github.com/dec1/libzip.git | |
| # creates docker container with all tools, libraries and sources required to build libzip for android. | |
| # Author: Declan Moran | |
| # www.silverglint.com | |
| # Usage: | |
| #--------- | |
| # download the libzip repository | |
| # > git clone https://github.com/dec1/libzip.git | |
| # > cd libzip | |
| # | |
| # build docker image "my_img_zip" from the dockerfile in "docker" dir | |
| # > docker build -t my_img_zip ./android/docker | |
| # | |
| # run docker container "my_ctr_zip" from this image, mounting the current dir. (Need to pass absolute host paths to mount volume- hence "pwd") | |
| # > docker run -v $(pwd):/home/docker-share/libzip -it --entrypoint=/bin/bash --name my_ctr_zip my_img_zip | |
| # | |
| # Now inside docker container | |
| # $ cd /home/docker-share/libzip/android | |
| # | |
| # Modify ./do.sh (on host), to match the boost and android ndk versions/paths in the "Configure here" section below | |
| # Build from running docker container. | |
| # $./do.sh | |
| # | |
| # "./build" dir contains required build, but owned by root. chown to your username/group | |
| # > sudo chown -R <userid>:<groupid> ./build | |
| # > sudo chown -R <userid>:<groupid> ./install | |
| # | |
| # Exit container, when build is finished. | |
| # $ exit | |
| # | |
| FROM ubuntu:18.04 | |
| ## -------------------------------------------------------------------- | |
| ## Configure here | |
| # --------------------------------------------------------------------- | |
| # --------------------------------------------------------------------- | |
| # Here you can speciofy exactly what android ndk (and sdk) version you want to use. | |
| # (2) Android SDK | |
| # https://developer.android.com/studio#downloads | |
| ARG SDK_URL_BASE=https://dl.google.com/android/repository | |
| ARG SDK_FILE=sdk-tools-linux-4333796.zip | |
| # the sdk platform to use | |
| # https://developer.android.com/guide/topics/manifest/uses-sdk-element | |
| ARG ANDROID_SDK_PLATFORM_VERS="platforms;android-28" | |
| # (3) Android NDK | |
| # https://developer.android.com/ndk/downloads | |
| ARG NDK_URL_BASE=https://dl.google.com/android/repository | |
| ARG NDK_FILE=android-ndk-r19c-linux-x86_64.zip | |
| # --------------------------------------------------------------------- | |
| ## -------------------------------------------------------------------- | |
| RUN apt-get update | |
| RUN apt-get -y dist-upgrade | |
| # for downloading archives | |
| RUN apt-get -y install wget | |
| # for unzipping downloaded android archives | |
| RUN apt-get -y install zip | |
| RUN apt-get -y install cmake | |
| RUN apt-get -y install lib32z1 | |
| # need this this to install some (32 bit) prerequisites for android builds | |
| RUN dpkg --add-architecture i386 | |
| RUN apt-get update | |
| RUN apt-get -y dist-upgrade | |
| RUN apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 libbz2-1.0:i386 | |
| # need c compiler to set up create boost build system (before building boost with it and android toolchain) | |
| RUN apt-get -y install build-essential | |
| RUN apt-get -y install libc6-dev-i386 | |
| RUN apt-get -y install clang | |
| RUN apt-get -y install openjdk-8-jdk | |
| #-------------------------------------- | |
| ARG ANDROID_HOME=/home/android | |
| WORKDIR ${ANDROID_HOME} | |
| # SDK | |
| # ---- | |
| # download android sdk command line tools | |
| RUN wget ${SDK_URL_BASE}/$SDK_FILE | |
| RUN unzip $SDK_FILE | |
| ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools | |
| RUN yes | sdkmanager --licenses | |
| RUN sdkmanager "platform-tools" $ANDROID_SDK_PLATFORM_VERS | |
| #RUN sdkmanager "platform-tools" "platforms;android-28" | |
| # NDK | |
| # ---- | |
| RUN wget ${NDK_URL_BASE}/$NDK_FILE | |
| RUN unzip $NDK_FILE | |