summaryrefslogtreecommitdiffstats
path: root/scripts/docker
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2020-11-18 22:01:29 +0000
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-11-19 17:18:33 -0800
commitcb4ccea3c225fa4d294f4861530ff3b67c1d9efd (patch)
tree0eeb171fb50df0a442f6c540d841171112c347b8 /scripts/docker
parent3071ea06f010664af636fbb26edec53abbbe58de (diff)
downloadsubsurface-cb4ccea3c225fa4d294f4861530ff3b67c1d9efd.tar.gz
build-system: update Android builder docker container
This adjusts the docker setup to create a container with the correct NDK, SDK, tools, Qt version, etc, and updates the helper scripts that are needed in order to do that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'scripts/docker')
-rw-r--r--scripts/docker/android-build-container/Dockerfile90
-rw-r--r--scripts/docker/android-build-container/setup-docker.sh13
2 files changed, 54 insertions, 49 deletions
diff --git a/scripts/docker/android-build-container/Dockerfile b/scripts/docker/android-build-container/Dockerfile
index 1fcc1aa76..d260ea957 100644
--- a/scripts/docker/android-build-container/Dockerfile
+++ b/scripts/docker/android-build-container/Dockerfile
@@ -5,12 +5,14 @@ RUN apt-get update && \
apt-get install -y \
autoconf \
automake \
+ cmake \
git \
libtool-bin \
make \
wget \
unzip \
python \
+ python3-pip \
bzip2 \
pkg-config \
libx11-xcb1 \
@@ -18,65 +20,59 @@ RUN apt-get update && \
libglib2.0-0 \
openjdk-8-jdk \
curl \
+ coreutils \
p7zip-full
# create our working directory and place the local copies of the Qt
# install, NDK and SDK there, plus the three files from the Subsurface
# sources that we need to get the prep routines to run
RUN mkdir -p /android
-ADD android-ndk-r*-linux-x86_64.zip /android/
-ADD sdk-tools-linux-*.zip /android/
-ADD install-qt.sh android-build-wrapper.sh variables.sh /android/
+ADD commandlinetools-linux-*.zip /android/
+RUN cd /android && unzip commandlinetools-linux-*.zip
+ADD android-build-setup.sh variables.sh /android/
-# install current cmake
-ADD cmake-3.13.2.tar.gz /android/
-RUN cd /android/cmake-3.13.2 && \
- bash ./bootstrap && \
- make -j6 && make install
-
-# run the build wrapper in prep mode
-RUN cd /android && bash -x /android/android-build-wrapper.sh -prep-only
+# run the build setup
+RUN ls -l /android
+RUN cd /android && bash -x /android/android-build-setup.sh
# clean up the files that we don't need to keep the container smaller
RUN cd /android && \
- apt-get remove -y gcc g++-7 libstdc++-7-dev && \
rm -rf \
- Qt/5*/android_arm*/lib/*x86* \
- Qt/5*/android_arm*/doc \
- Qt/5*/android_arm*/include/QtHelp \
- Qt/5*/android_arm*/include/QtFbSupport \
- Qt/5*/android_arm*/include/QtFontDatabaseSupport \
- Qt/5*/android_arm*/include/QtNfc \
- Qt/5*/android_arm*/include/QtPrintSupport \
- Qt/5*/android_arm*/include/QtTest \
- Qt/5*/android_arm*/include/QtXml \
- Qt/5*/android_arm*/plugins/geoservices/libqtgeoservices_mapboxgl.so \
- sdk-tools-linux-*.zip \
- android-ndk-r*-linux-x86_64.zip \
- $( find android-ndk*/platforms -name arch-mips -o -name arch-x86 ) \
- android-ndk-r[0-9a-z]*/toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \
- android-ndk-r[0-9a-z]*/platforms/android-[12][2345678] \
- android-ndk-r[0-9a-z]*/platforms/android-21/arch-x86_64 \
- android-ndk-r[0-9a-z]*/prebuilt/linux-x86_64 \
- android-ndk-r[0-9a-z]*/simpleperf \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/libs/x* \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/libs/*/*static* \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/test \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/llvm-libc++/utils \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/llvmlibc++abi \
- android-ndk-r[0-9a-z]*/sources/cxx-stl/system \
- android-ndk-r[0-9a-z]*/sources/third_party \
- android-ndk-r[0-9a-z]*/sysroot/usr/lib \
- android-sdk-linux/build-tools/28.0.3/renderscript \
- android-sdk-linux/platform-tools/systrace \
- android-sdk-linux/tools/lib \
- android-sdk-linux/tools/proguard \
- android-sdk-linux/tools/support \
- android-sdk-linux/emulator \
- /usr/lib/gcc \
- cmake-3.13* && \
+ 5*/android/lib/*x86* \
+ 5*/android/doc \
+ 5*/android/include/QtHelp \
+ 5*/android/include/QtFbSupport \
+ 5*/android/include/QtFontDatabaseSupport \
+ 5*/android/include/QtNfc \
+ 5*/android/include/QtPrintSupport \
+ 5*/android/include/QtTest \
+ 5*/android/include/QtXml \
+ 5*/android/plugins/geoservices/libqtgeoservices_mapboxgl.so \
+ commandlinetools-linux-*.zip \
+ $( find platforms -name arch-mips -o -name arch-x86 ) \
+ toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \
+ platforms/android-[12][2345678] \
+ platforms/android-21/arch-x86_64 \
+ ndk/*/sources/cxx-stl/llvm-libc++/libs/x* \
+ ndk/*/sources/cxx-stl/llvm-libc++/libs/*/*static* \
+ ndk/*/sources/cxx-stl/llvm-libc++/test \
+ ndk/*/sources/cxx-stl/llvm-libc++/utils \
+ ndk/*/sources/cxx-stl/llvmlibc++abi \
+ ndk/*/sources/cxx-stl/system \
+ ndk/*/sources/third_party \
+ ndk/*/sysroot/usr/lib \
+ build-tools/*/renderscript \
+ platform-tools/systrace \
+ tools/lib \
+ tools/proguard \
+ tools/support \
+ emulator \
+ platform-tools-2 \
+ variables.sh \
+ android-build-setup.sh
+ /usr/lib/gcc && \
ls -l && \
du -sh *
RUN apt-get clean
-RUN cd /android/android-ndk-r18b/toolchains && ln -s x86_64-4.9 x86-64-4.9
+#RUN cd /android/android-ndk-r18b/toolchains && ln -s x86_64-4.9 x86-64-4.9
RUN touch /android/finished-"`date`"
diff --git a/scripts/docker/android-build-container/setup-docker.sh b/scripts/docker/android-build-container/setup-docker.sh
index f9b9b5310..e8437d30e 100644
--- a/scripts/docker/android-build-container/setup-docker.sh
+++ b/scripts/docker/android-build-container/setup-docker.sh
@@ -2,10 +2,19 @@
# Use this to re-create a docker container for building Android binaries
+# Google makes it intentionally very hard to download the command line tools
+# the URL is constantly changing and the website requires you to click through
+# a license.
+# Today this URL works:
+if [ ! -f commandlinetools-linux-6858069_latest.zip ] ; then
+ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
+fi
+# if this fails, go to https://developer.android.com/studio#cmdline-tools and click through
+# for yourself...
+
# copy the dependency script into this folder
-cp ../../../packaging/android/android-build-wrapper.sh .
+cp ../../../packaging/android/android-build-setup.sh .
cp ../../../packaging/android/variables.sh .
-cp ../../../packaging/android/install-qt.sh .
# create the container (this takes a while)
sudo docker build -t android-builder --squash .