summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpackaging/android/android-build-wrapper.sh30
-rw-r--r--scripts/docker/android-build-container/Dockerfile47
-rw-r--r--scripts/docker/android-build-container/setup-docker.sh2
3 files changed, 52 insertions, 27 deletions
diff --git a/packaging/android/android-build-wrapper.sh b/packaging/android/android-build-wrapper.sh
index a361d8e41..f7152596b 100755
--- a/packaging/android/android-build-wrapper.sh
+++ b/packaging/android/android-build-wrapper.sh
@@ -53,7 +53,6 @@ PLATFORM=$(uname)
export SUBSURFACE_SOURCE="$SCRIPTDIR"/../..
if [ "$PLATFORM" = Linux ] ; then
- QT_BINARIES=qt-opensource-linux-x64-${LATEST_QT}.run
NDK_BINARIES=${ANDROID_NDK}-linux-x86_64.zip
SDK_TOOLS=sdk-tools-linux-${SDK_VERSION}.zip
else
@@ -117,24 +116,21 @@ fi
# due to https://bugreports.qt.io/browse/QTBUG-69494
cp "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORM}"/data/fonts/Roboto-Regular.ttf "$SUBSURFACE_SOURCE"/android-mobile || exit 1
-# download the Qt installer including Android bits and unpack / install
-QT_DOWNLOAD_URL=https://download.qt.io/archive/qt/${QT_VERSION}/${LATEST_QT}/${QT_BINARIES}
if [ ! -d Qt/"${LATEST_QT}"/android_armv7 ] ; then
- if [ -d Qt ] ; then
- # Over writing an exsisting installation stalls the installation script,
- # rename the exsisting Qt folder and notify then user.
- mv Qt Qt_OLD
- echo "Qt installation found, backing it up to Qt_OLD."
- fi
- if [ ! -f "${QT_BINARIES}" ] ; then
- wget -q "${QT_DOWNLOAD_URL}"
- fi
- chmod +x ./"${QT_BINARIES}"
- ./"${QT_BINARIES}" --platform minimal --script "$SCRIPTDIR"/qt-installer-noninteractive.qs --no-force-installations
+ # download the Qt installer including Android bits and unpack / install
+ bash "$SCRIPTDIR"/install-qt.sh --version ${LATEST_QT} --target android --toolchain android_armv7 \
+ qtbase qtdeclarative qttranslations qttools qtsvg \
+ qtquickcontrols qtquickcontrols2 qtlocation qtimageformats \
+ qtgraphicaleffects qtconnectivity qtandroidextras \
+ --directory Qt
+fi
+if [ ! -d Qt/"${LATEST_QT}"/android_arm64_v8a ] ; then
+ bash "$SCRIPTDIR"/install-qt.sh --version ${LATEST_QT} --target android --toolchain android_arm64_v8a \
+ qtbase qtdeclarative qttranslations qttools qtsvg \
+ qtquickcontrols qtquickcontrols2 qtlocation qtimageformats \
+ qtgraphicaleffects qtconnectivity qtandroidextras \
+ --directory Qt
fi
-
-# patch the cmake / Qt5.7.1 incompatibility mentioned above
-sed -i 's/set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)/# &/' Qt/"${LATEST_QT}"/android_armv7/lib/cmake/Qt5Core/Qt5CoreConfigExtras.cmake
if [ ! -z ${PREP_ONLY+x} ] ; then
exit 0
diff --git a/scripts/docker/android-build-container/Dockerfile b/scripts/docker/android-build-container/Dockerfile
index 62363d559..509443f85 100644
--- a/scripts/docker/android-build-container/Dockerfile
+++ b/scripts/docker/android-build-container/Dockerfile
@@ -16,16 +16,17 @@ RUN apt-get update && \
libx11-xcb1 \
libgl1-mesa-glx \
libglib2.0-0 \
- openjdk-8-jdk
+ openjdk-8-jdk \
+ curl \
+ 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 qt-opensource-linux-x64-5.13.1.run /android/
ADD android-ndk-r*-linux-x86_64.zip /android/
ADD sdk-tools-linux-*.zip /android/
-ADD android-build-wrapper.sh variables.sh qt-installer-noninteractive.qs /android/
+ADD install-qt.sh android-build-wrapper.sh variables.sh /android/
# install current cmake
ADD cmake-3.13.2.tar.gz /android/
@@ -38,17 +39,45 @@ RUN cd /android && bash -x /android/android-build-wrapper.sh -prep-only
# uggly hack to work around some breakage in the NDK which makes our
# compiles fail
-RUN sed -i '313,+13s/^using/\/\/using/' /android/android-ndk-r18b/sources/cxx-stl/llvm-libc++/include/cmath
+#RUN sed -i '313,+13s/^using/\/\/using/' /android/android-ndk-r21/sources/cxx-stl/llvm-libc++/include/cmath
# clean up the files that we don't need to keep the container smaller
RUN cd /android && \
- rm -rf qt-opensource-linux-x64-*.run \
- Qt/[a-zA-Z]* \
- sdk-tools-linux-*.zip \
+ 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 \
- $( find android-ndk*/platforms -name arch-mips -o -name arch-x86 ) \
- android-ndk*/toolchains/x86-* android-ndk*/toolchains/llvm/prebuilt/x86-* \
+ /usr/lib/gcc \
cmake-3.13* && \
ls -l && \
du -sh *
diff --git a/scripts/docker/android-build-container/setup-docker.sh b/scripts/docker/android-build-container/setup-docker.sh
index 98c13ec48..f9b9b5310 100644
--- a/scripts/docker/android-build-container/setup-docker.sh
+++ b/scripts/docker/android-build-container/setup-docker.sh
@@ -5,7 +5,7 @@
# copy the dependency script into this folder
cp ../../../packaging/android/android-build-wrapper.sh .
cp ../../../packaging/android/variables.sh .
-cp ../../../packaging/android/qt-installer-noninteractive.qs .
+cp ../../../packaging/android/install-qt.sh .
# create the container (this takes a while)
sudo docker build -t android-builder --squash .