From be11dd7ef5ce7d53da39d790ca685ccd954f932a Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 5 Apr 2019 17:30:10 +0200 Subject: [PATCH] Sync android-*-qt5 with AUR version To be tested when rebuilding anyways --- devel/qt5/sync-android-variants.sh | 3 + ...1-Fix-clang-libc-build-under-Android.patch | 2 +- ...002-Fix-androiddeployqt-search-paths.patch | 2 +- ...003-Support-pkg-config-under-Android.patch | 24 ++++++ qt5/android-aarch64/PKGBUILD | 76 +++++++++---------- qt5/android-aarch64/android-env.sh | 73 ++++++++++++++++++ ...1-Fix-clang-libc-build-under-Android.patch | 2 +- ...002-Fix-androiddeployqt-search-paths.patch | 2 +- ...003-Support-pkg-config-under-Android.patch | 24 ++++++ qt5/android-armv7a-eabi/PKGBUILD | 76 +++++++++---------- qt5/android-armv7a-eabi/android-env.sh | 73 ++++++++++++++++++ 11 files changed, 271 insertions(+), 86 deletions(-) create mode 100755 devel/qt5/sync-android-variants.sh create mode 100644 qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch create mode 100755 qt5/android-aarch64/android-env.sh create mode 100644 qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch create mode 100755 qt5/android-armv7a-eabi/android-env.sh diff --git a/devel/qt5/sync-android-variants.sh b/devel/qt5/sync-android-variants.sh new file mode 100755 index 00000000..92bd3481 --- /dev/null +++ b/devel/qt5/sync-android-variants.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash -e +cd "$(dirname "$0")/../../qt5" +../devel/sync-variants.sh . android-aarch64 android-* diff --git a/qt5/android-aarch64/0001-Fix-clang-libc-build-under-Android.patch b/qt5/android-aarch64/0001-Fix-clang-libc-build-under-Android.patch index b47e6371..c4a8df6c 100644 --- a/qt5/android-aarch64/0001-Fix-clang-libc-build-under-Android.patch +++ b/qt5/android-aarch64/0001-Fix-clang-libc-build-under-Android.patch @@ -1,7 +1,7 @@ From a2e98de3e73003272729e4393e32ac49fa991f5a Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 9 Dec 2018 14:28:07 +0100 -Subject: [PATCH 1/2] Fix clang/libc++ build under Android +Subject: [PATCH 1/3] Fix clang/libc++ build under Android --- mkspecs/android-clang/qmake.conf | 7 +++++-- diff --git a/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch b/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch index ff09363c..3a83b3ed 100644 --- a/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch +++ b/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch @@ -1,7 +1,7 @@ From e209f40d45c9ca8dfc8f7704904c49dd9998de28 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 9 Dec 2018 14:31:30 +0100 -Subject: [PATCH 2/2] Fix androiddeployqt search paths +Subject: [PATCH 2/3] Fix androiddeployqt search paths --- src/tools/androiddeployqt/main.cpp | 4 ++-- diff --git a/qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch b/qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch new file mode 100644 index 00000000..ff186e53 --- /dev/null +++ b/qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch @@ -0,0 +1,24 @@ +From fc643d716b33387759d9be0eeff250deb624d5e9 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 7 Apr 2019 09:54:49 +0200 +Subject: [PATCH 3/3] Support pkg-config under Android + +from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77 +--- + mkspecs/android-clang/qmake.conf | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf +index 5cc6ee79e2..c731b4ef23 100644 +--- a/mkspecs/android-clang/qmake.conf ++++ b/mkspecs/android-clang/qmake.conf +@@ -57,3 +57,6 @@ else: \ + QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz + + include(../common/android-base-tail.conf) ++ ++QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX] ++QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config +-- +2.21.0 + diff --git a/qt5/android-aarch64/PKGBUILD b/qt5/android-aarch64/PKGBUILD index a38f9478..28f2b2c9 100644 --- a/qt5/android-aarch64/PKGBUILD +++ b/qt5/android-aarch64/PKGBUILD @@ -5,23 +5,13 @@ # Contributor: Ricardo (XenGi) Band # Contributor: Martchus -# Useful link to keep track of latest API changes: -# https://developer.android.com/ndk/downloads/revision_history - _pkg_arch=aarch64 _android_arch=arm64-v8a _android_platform=22 -# Minimum Android platform based on: -# https://developer.android.com/about/dashboards/ -export ANDROID_MINIMUM_PLATFORM=${ANDROID_MINIMUM_PLATFORM:-$_android_platform} - -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} - pkgname=android-$_pkg_arch-qt5 pkgver=5.12.2 -pkgrel=1 +pkgrel=2 pkgdesc="Qt 5 for Android" arch=('x86_64') url='https://www.qt.io' @@ -35,12 +25,13 @@ makedepends=('libgl' 'gperf' 'libxslt' 'fontconfig' - 'java-environment-openjdk<=8' + 'java-environment-openjdk<=8' + 'android-pkg-config' "android-$_pkg_arch-openssl") depends=('java-runtime-headless-openjdk<=8' 'apache-ant' 'android-ndk' - "android-platform-$ANDROID_MINIMUM_PLATFORM" + "android-platform-$_android_platform" 'android-sdk' 'android-sdk-build-tools' 'android-sdk-platform-tools') @@ -70,28 +61,31 @@ case "$_pkg_arch" in esac optdepends+=("android-$_pkg_arch-openssl: SSL support for Qt Network") -options=('!strip' - '!buildflags' - 'staticlibs' - '!emptydirs') +options=(!strip !buildflags staticlibs !emptydirs) _pkgfqn="qt-everywhere-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver:0:4}/${pkgver}/single/${_pkgfqn}.tar.xz" '0001-Fix-clang-libc-build-under-Android.patch' '0002-Fix-androiddeployqt-search-paths.patch' - '0001-Disable-mapboxgl.patch') + '0003-Support-pkg-config-under-Android.patch' + '0001-Disable-mapboxgl.patch' + 'android-env.sh') sha256sums=('59b8cb4e728450b21224dcaaa40eb25bafc5196b6988f2225c394c6b7f881ff5' - '0a7e5d8d2192b69af5b648db57de2feb2e70348c73e0e7d9570d8dc170437aad' - 'a958611bef4385b4e2d91ece10ab5cd48f621628c07612a18e36abae3cfbf440' - 'add336aab427a319203205355029229592713cebcda2e8bc4ce99efdb0322b76') - -_pref=/opt/android-libs/$_pkg_arch + 'fixme' + 'fixme' + 'fixme' + 'fixme' + 'fixme') prepare() { cd ${_pkgfqn} + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + pushd qtbase patch -Np1 -i "../../0001-Fix-clang-libc-build-under-Android.patch" patch -Np1 -i "../../0002-Fix-androiddeployqt-search-paths.patch" + patch -Np1 -i "../../0003-Support-pkg-config-under-Android.patch" popd pushd qtlocation @@ -107,29 +101,24 @@ prepare() { sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri } -get_last() { - ls $1 | sort -V | tail -n 1 -} - build() { cd ${_pkgfqn} unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH - export ANDROID_BUILD_TOOLS_REVISION=${ANDROID_BUILD_TOOLS_REVISION:-$(get_last ${ANDROID_SDK_ROOT}/build-tools)} - export ANDROID_API_VERSION=${ANDROID_API_VERSION:-android-$ANDROID_MINIMUM_PLATFORM} - export ANDROID_NDK_PLATFORM=${ANDROID_NDK_PLATFORM:-android-$ANDROID_MINIMUM_PLATFORM} + export PKG_CONFIG=$ANDROID_PKGCONFIG export PYTHON=/usr/bin/python2 + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + configue_opts=" -confirm-license -opensource -silent - -prefix ${_pref} - -archdatadir ${_pref}/lib/qt - -datadir ${_pref}/share/qt - -examplesdir ${_pref}/share/qt/examples - -testsdir ${_pref}/share/qt/tests + -prefix ${ANDROID_LIBS} + -examplesdir ${ANDROID_LIBS}/share/qt5/examples + -testsdir ${ANDROID_LIBS}/share/qt5/tests -xplatform android-clang -nomake tests -nomake examples @@ -145,7 +134,7 @@ build() { -openssl-runtime -android-arch ${_android_arch} -android-ndk-platform ${ANDROID_NDK_PLATFORM} - -I/opt/android-libs/$_pkg_arch/include" + -I${ANDROID_LIBS}/$_pkg_arch/include" [[ $ANDROID_DEBUG_BUILD ]] \ && configue_opts+=' -debug-and-release' \ @@ -170,6 +159,9 @@ build() { package() { cd ${_pkgfqn} + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + make INSTALL_ROOT=${pkgdir} install case "$_pkg_arch" in @@ -191,11 +183,13 @@ package() { ;; esac - local STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip - find ${pkgdir}/${_pref}/bin -type f ! -name '*.pl' -exec strip {} \; - find ${pkgdir}/${_pref}/lib -type f -name 'lib*.so' -exec ${STRIP} {} \; - find ${pkgdir}/${_pref}/lib \( -type f -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${STRIP} {} \; - find ${pkgdir}/${_pref}/lib/qt/plugins -type f -name 'lib*.so' -exec ${STRIP} {} \; + make INSTALL_ROOT=${pkgdir} install + STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip + find ${pkgdir}/${ANDROID_LIBS}/bin -type f ! -name '*.pl' -exec strip {} \; + find ${pkgdir}/${ANDROID_LIBS}/lib -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/lib -type f \( -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/plugins -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/qml -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; # fix plugin path in Android-specific dependency file sed -i 's/\"plugins\//\"lib\/qt\/plugins\//g' ${pkgdir}/${_pref}/lib/*-android-dependencies.xml diff --git a/qt5/android-aarch64/android-env.sh b/qt5/android-aarch64/android-env.sh new file mode 100755 index 00000000..d9f6b78e --- /dev/null +++ b/qt5/android-aarch64/android-env.sh @@ -0,0 +1,73 @@ +#!/bin/sh + +# Useful link to keep track of latest API changes: +# +# https://developer.android.com/ndk/downloads/revision_history + +_android_arch=$1 + +# Minimum Android platform based on: +# +# https://developer.android.com/about/dashboards/ +if [ -z "${ANDROID_MINIMUM_PLATFORM}" ]; then + export ANDROID_MINIMUM_PLATFORM=22 +fi + +if [ -z "${ANDROID_NDK_ROOT}" ]; then + export ANDROID_NDK_ROOT=/opt/android-ndk +fi + +if [ -z "${ANDROID_SDK_ROOT}" ]; then + export ANDROID_SDK_ROOT=/opt/android-sdk +fi + +get_last() { + ls $1 | sort -V | tail -n 1 +} + +if [ -z "${ANDROID_BUILD_TOOLS_REVISION}" ]; then + export ANDROID_BUILD_TOOLS_REVISION=$(get_last ${ANDROID_SDK_ROOT}/build-tools) +fi + +if [ -z "${ANDROID_API_VERSION}" ]; then + export ANDROID_API_VERSION=android-$ANDROID_MINIMUM_PLATFORM +fi + +if [ -z "${ANDROID_NDK_PLATFORM}" ]; then + export ANDROID_NDK_PLATFORM=android-$ANDROID_MINIMUM_PLATFORM +fi + +export ANDROID_PLATFORM=${ANDROID_NDK_ROOT}/platforms/$ANDROID_NDK_PLATFORM +export ANDROID_TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64 +export ANDROID_SYSROOT=${ANDROID_TOOLCHAIN}/sysroot +export ANDROID_CROSS_PREFIX=$ANDROID_TOOLCHAIN/bin/ +export ANDROID_PKGCONFIG=android-${_android_arch}-pkg-config + +case "$_android_arch" in + aarch64) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}aarch64-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}aarch64-linux-android- + ;; + armv7a-eabi) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}armv7a-linux-androideabi${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}arm-linux-androideabi- + ;; + x86) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}i686-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}i686-linux-android- + ;; + x86-64) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}x86_64-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}x86_64-linux-android- + ;; +esac + +export ANDROID_CC=${ANDROID_TOOLS_COMPILER_PREFIX}clang +export ANDROID_CXX=${ANDROID_TOOLS_COMPILER_PREFIX}clang++ +export ANDROID_AR=${ANDROID_TOOLS_PREFIX}ar +export ANDROID_NM=${ANDROID_TOOLS_PREFIX}nm +export ANDROID_RANLIB=${ANDROID_TOOLS_PREFIX}ranlib +export ANDROID_STRIP=${ANDROID_TOOLS_PREFIX}strip +export ANDROID_LIBS=/opt/android-libs/${_android_arch} +export PKG_CONFIG_SYSROOT_DIR=${ANDROID_LIBS} +export PKG_CONFIG_LIBDIR=${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig:${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig diff --git a/qt5/android-armv7a-eabi/0001-Fix-clang-libc-build-under-Android.patch b/qt5/android-armv7a-eabi/0001-Fix-clang-libc-build-under-Android.patch index b47e6371..c4a8df6c 100644 --- a/qt5/android-armv7a-eabi/0001-Fix-clang-libc-build-under-Android.patch +++ b/qt5/android-armv7a-eabi/0001-Fix-clang-libc-build-under-Android.patch @@ -1,7 +1,7 @@ From a2e98de3e73003272729e4393e32ac49fa991f5a Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 9 Dec 2018 14:28:07 +0100 -Subject: [PATCH 1/2] Fix clang/libc++ build under Android +Subject: [PATCH 1/3] Fix clang/libc++ build under Android --- mkspecs/android-clang/qmake.conf | 7 +++++-- diff --git a/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch b/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch index ff09363c..3a83b3ed 100644 --- a/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch +++ b/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch @@ -1,7 +1,7 @@ From e209f40d45c9ca8dfc8f7704904c49dd9998de28 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 9 Dec 2018 14:31:30 +0100 -Subject: [PATCH 2/2] Fix androiddeployqt search paths +Subject: [PATCH 2/3] Fix androiddeployqt search paths --- src/tools/androiddeployqt/main.cpp | 4 ++-- diff --git a/qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch b/qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch new file mode 100644 index 00000000..ff186e53 --- /dev/null +++ b/qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch @@ -0,0 +1,24 @@ +From fc643d716b33387759d9be0eeff250deb624d5e9 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sun, 7 Apr 2019 09:54:49 +0200 +Subject: [PATCH 3/3] Support pkg-config under Android + +from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77 +--- + mkspecs/android-clang/qmake.conf | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf +index 5cc6ee79e2..c731b4ef23 100644 +--- a/mkspecs/android-clang/qmake.conf ++++ b/mkspecs/android-clang/qmake.conf +@@ -57,3 +57,6 @@ else: \ + QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz + + include(../common/android-base-tail.conf) ++ ++QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX] ++QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config +-- +2.21.0 + diff --git a/qt5/android-armv7a-eabi/PKGBUILD b/qt5/android-armv7a-eabi/PKGBUILD index e00855ff..f0212c61 100644 --- a/qt5/android-armv7a-eabi/PKGBUILD +++ b/qt5/android-armv7a-eabi/PKGBUILD @@ -5,23 +5,13 @@ # Contributor: Ricardo (XenGi) Band # Contributor: Martchus -# Useful link to keep track of latest API changes: -# https://developer.android.com/ndk/downloads/revision_history - _pkg_arch=armv7a-eabi _android_arch=armeabi-v7a _android_platform=21 -# Minimum Android platform based on: -# https://developer.android.com/about/dashboards/ -export ANDROID_MINIMUM_PLATFORM=${ANDROID_MINIMUM_PLATFORM:-$_android_platform} - -export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} -export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} - pkgname=android-$_pkg_arch-qt5 pkgver=5.12.2 -pkgrel=1 +pkgrel=2 pkgdesc="Qt 5 for Android" arch=('x86_64') url='https://www.qt.io' @@ -35,12 +25,13 @@ makedepends=('libgl' 'gperf' 'libxslt' 'fontconfig' - 'java-environment-openjdk<=8' + 'java-environment-openjdk<=8' + 'android-pkg-config' "android-$_pkg_arch-openssl") depends=('java-runtime-headless-openjdk<=8' 'apache-ant' 'android-ndk' - "android-platform-$ANDROID_MINIMUM_PLATFORM" + "android-platform-$_android_platform" 'android-sdk' 'android-sdk-build-tools' 'android-sdk-platform-tools') @@ -70,28 +61,31 @@ case "$_pkg_arch" in esac optdepends+=("android-$_pkg_arch-openssl: SSL support for Qt Network") -options=('!strip' - '!buildflags' - 'staticlibs' - '!emptydirs') +options=(!strip !buildflags staticlibs !emptydirs) _pkgfqn="qt-everywhere-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver:0:4}/${pkgver}/single/${_pkgfqn}.tar.xz" '0001-Fix-clang-libc-build-under-Android.patch' '0002-Fix-androiddeployqt-search-paths.patch' - '0001-Disable-mapboxgl.patch') + '0003-Support-pkg-config-under-Android.patch' + '0001-Disable-mapboxgl.patch' + 'android-env.sh') sha256sums=('59b8cb4e728450b21224dcaaa40eb25bafc5196b6988f2225c394c6b7f881ff5' - '0a7e5d8d2192b69af5b648db57de2feb2e70348c73e0e7d9570d8dc170437aad' - 'a958611bef4385b4e2d91ece10ab5cd48f621628c07612a18e36abae3cfbf440' - 'add336aab427a319203205355029229592713cebcda2e8bc4ce99efdb0322b76') - -_pref=/opt/android-libs/$_pkg_arch + 'fixme' + 'fixme' + 'fixme' + 'fixme' + 'fixme') prepare() { cd ${_pkgfqn} + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + pushd qtbase patch -Np1 -i "../../0001-Fix-clang-libc-build-under-Android.patch" patch -Np1 -i "../../0002-Fix-androiddeployqt-search-paths.patch" + patch -Np1 -i "../../0003-Support-pkg-config-under-Android.patch" popd pushd qtlocation @@ -107,29 +101,24 @@ prepare() { sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri } -get_last() { - ls $1 | sort -V | tail -n 1 -} - build() { cd ${_pkgfqn} unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH - export ANDROID_BUILD_TOOLS_REVISION=${ANDROID_BUILD_TOOLS_REVISION:-$(get_last ${ANDROID_SDK_ROOT}/build-tools)} - export ANDROID_API_VERSION=${ANDROID_API_VERSION:-android-$ANDROID_MINIMUM_PLATFORM} - export ANDROID_NDK_PLATFORM=${ANDROID_NDK_PLATFORM:-android-$ANDROID_MINIMUM_PLATFORM} + export PKG_CONFIG=$ANDROID_PKGCONFIG export PYTHON=/usr/bin/python2 + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + configue_opts=" -confirm-license -opensource -silent - -prefix ${_pref} - -archdatadir ${_pref}/lib/qt - -datadir ${_pref}/share/qt - -examplesdir ${_pref}/share/qt/examples - -testsdir ${_pref}/share/qt/tests + -prefix ${ANDROID_LIBS} + -examplesdir ${ANDROID_LIBS}/share/qt5/examples + -testsdir ${ANDROID_LIBS}/share/qt5/tests -xplatform android-clang -nomake tests -nomake examples @@ -145,7 +134,7 @@ build() { -openssl-runtime -android-arch ${_android_arch} -android-ndk-platform ${ANDROID_NDK_PLATFORM} - -I/opt/android-libs/$_pkg_arch/include" + -I${ANDROID_LIBS}/$_pkg_arch/include" [[ $ANDROID_DEBUG_BUILD ]] \ && configue_opts+=' -debug-and-release' \ @@ -170,6 +159,9 @@ build() { package() { cd ${_pkgfqn} + export ANDROID_MINIMUM_PLATFORM=${_android_platform} + source android-env.sh ${_android_arch} + make INSTALL_ROOT=${pkgdir} install case "$_pkg_arch" in @@ -191,11 +183,13 @@ package() { ;; esac - local STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip - find ${pkgdir}/${_pref}/bin -type f ! -name '*.pl' -exec strip {} \; - find ${pkgdir}/${_pref}/lib -type f -name 'lib*.so' -exec ${STRIP} {} \; - find ${pkgdir}/${_pref}/lib \( -type f -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${STRIP} {} \; - find ${pkgdir}/${_pref}/lib/qt/plugins -type f -name 'lib*.so' -exec ${STRIP} {} \; + make INSTALL_ROOT=${pkgdir} install + STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip + find ${pkgdir}/${ANDROID_LIBS}/bin -type f ! -name '*.pl' -exec strip {} \; + find ${pkgdir}/${ANDROID_LIBS}/lib -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/lib -type f \( -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/plugins -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; + find ${pkgdir}/${ANDROID_LIBS}/qml -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \; # fix plugin path in Android-specific dependency file sed -i 's/\"plugins\//\"lib\/qt\/plugins\//g' ${pkgdir}/${_pref}/lib/*-android-dependencies.xml diff --git a/qt5/android-armv7a-eabi/android-env.sh b/qt5/android-armv7a-eabi/android-env.sh new file mode 100755 index 00000000..d9f6b78e --- /dev/null +++ b/qt5/android-armv7a-eabi/android-env.sh @@ -0,0 +1,73 @@ +#!/bin/sh + +# Useful link to keep track of latest API changes: +# +# https://developer.android.com/ndk/downloads/revision_history + +_android_arch=$1 + +# Minimum Android platform based on: +# +# https://developer.android.com/about/dashboards/ +if [ -z "${ANDROID_MINIMUM_PLATFORM}" ]; then + export ANDROID_MINIMUM_PLATFORM=22 +fi + +if [ -z "${ANDROID_NDK_ROOT}" ]; then + export ANDROID_NDK_ROOT=/opt/android-ndk +fi + +if [ -z "${ANDROID_SDK_ROOT}" ]; then + export ANDROID_SDK_ROOT=/opt/android-sdk +fi + +get_last() { + ls $1 | sort -V | tail -n 1 +} + +if [ -z "${ANDROID_BUILD_TOOLS_REVISION}" ]; then + export ANDROID_BUILD_TOOLS_REVISION=$(get_last ${ANDROID_SDK_ROOT}/build-tools) +fi + +if [ -z "${ANDROID_API_VERSION}" ]; then + export ANDROID_API_VERSION=android-$ANDROID_MINIMUM_PLATFORM +fi + +if [ -z "${ANDROID_NDK_PLATFORM}" ]; then + export ANDROID_NDK_PLATFORM=android-$ANDROID_MINIMUM_PLATFORM +fi + +export ANDROID_PLATFORM=${ANDROID_NDK_ROOT}/platforms/$ANDROID_NDK_PLATFORM +export ANDROID_TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64 +export ANDROID_SYSROOT=${ANDROID_TOOLCHAIN}/sysroot +export ANDROID_CROSS_PREFIX=$ANDROID_TOOLCHAIN/bin/ +export ANDROID_PKGCONFIG=android-${_android_arch}-pkg-config + +case "$_android_arch" in + aarch64) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}aarch64-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}aarch64-linux-android- + ;; + armv7a-eabi) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}armv7a-linux-androideabi${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}arm-linux-androideabi- + ;; + x86) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}i686-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}i686-linux-android- + ;; + x86-64) + export ANDROID_TOOLS_COMPILER_PREFIX=${ANDROID_CROSS_PREFIX}x86_64-linux-android${ANDROID_MINIMUM_PLATFORM}- + export ANDROID_TOOLS_PREFIX=${ANDROID_CROSS_PREFIX}x86_64-linux-android- + ;; +esac + +export ANDROID_CC=${ANDROID_TOOLS_COMPILER_PREFIX}clang +export ANDROID_CXX=${ANDROID_TOOLS_COMPILER_PREFIX}clang++ +export ANDROID_AR=${ANDROID_TOOLS_PREFIX}ar +export ANDROID_NM=${ANDROID_TOOLS_PREFIX}nm +export ANDROID_RANLIB=${ANDROID_TOOLS_PREFIX}ranlib +export ANDROID_STRIP=${ANDROID_TOOLS_PREFIX}strip +export ANDROID_LIBS=/opt/android-libs/${_android_arch} +export PKG_CONFIG_SYSROOT_DIR=${ANDROID_LIBS} +export PKG_CONFIG_LIBDIR=${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig:${PKG_CONFIG_SYSROOT_DIR}/share/pkgconfig