PKGBUILDs/qt5/android-aarch64/PKGBUILD
Martchus 8bcbcdde52 Revert android-*-qt5 packages to 5.13.1
Further versions broke the build system,
see 18443d861e.

With 5.15.1 it basically works again but deployment with androiddeployqt
does not produce runnable APKs. Qt now has gained support for invoking
androiddeployqt within CMake. Using their official support instead of my
own helper might have worked but it could not cope with the fact that I
had multiple targets in my CMake project and was therefore useless in my
case.

So let's ditch Qt 5 on Android  and give Qt 6 another chance at some
point.
2020-12-05 21:44:04 +01:00

188 lines
6.5 KiB
Bash

# PKGCONFIG for android-qt5
# Maintainer in the AUR: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
# Contributor: Jiaxi Hu <sftrytry _AT_ gmail _DOT_ com>
# Contributor: jimmy00784 <jimmy00784@gmail.com>
# Contributor: Ricardo (XenGi) Band <email@ricardo.band>
# Contributor: Martchus <martchus@gmx.net>
_pkg_arch=aarch64
_android_arch=arm64-v8a
_android_platform=22
pkgname=android-$_pkg_arch-qt5
pkgver=5.13.1
pkgrel=1
pkgdesc="Qt 5 for Android"
arch=('x86_64')
url='https://www.qt.io'
license=('GPL3' 'LGPL')
makedepends=('libgl'
'sqlite'
'zlib'
'python2'
'python' # Qt Qml requires Python 3
'ruby'
'gperf'
'libxslt'
'fontconfig'
'java-environment-openjdk<=8'
'android-environment'
'android-pkg-config'
"android-$_pkg_arch-openssl")
depends=('java-runtime-headless-openjdk<=8'
'apache-ant'
'android-ndk'
"android-platform-$_android_platform"
'android-sdk'
'android-sdk-build-tools'
'android-sdk-platform-tools'
"android-$_pkg_arch-zlib"
"android-$_pkg_arch-libpng"
"android-$_pkg_arch-libjpeg-turbo")
groups=('android-qt5')
conflicts=("android-qt5-${_android_arch}")
replaces=("android-qt5-${_android_arch}")
case "$_pkg_arch" in
aarch64)
optdepends=('android-google-apis-aarch64: AVD support'
'android-aarch64-system-image: AVD support')
;;
armv7a-eabi)
optdepends=('android-google-apis-armv7a-eabi: AVD support'
'android-armv7a-eabi-system-image: AVD support')
;;
x86)
optdepends=('android-google-apis-x86: AVD support'
'android-x86-system-image: AVD support')
;;
x86-64)
optdepends=('android-google-apis-x86-64: AVD support'
'android-x86-64-system-image: AVD support')
;;
*)
;;
esac
optdepends+=("android-$_pkg_arch-openssl: SSL support for Qt Network")
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'
'0003-Support-pkg-config-under-Android.patch'
'0004-Use-pkg-config-to-find-libjpeg.patch'
'0001-Disable-mapboxgl.patch')
sha256sums=('adf00266dc38352a166a9739f1a24a1e36f1be9c04bf72e16e142a256436974e'
'29bcb93f9c79ad4b0709efa42694ed917b6e4cfce69a805e79a7dc3144be7765'
'7a5520311ba2edee2ffcd546cd6e08248c8f73deed33bd8075649577f8cb1446'
'5c3f0725f3c27263661ff5ebb4b279e4483de8ed70dee4fe42a84d31b3f2e4a9'
'4f3ba22616040a2979bfdf840b44bf105374ea2fac866c42977ad7ec6e87ddcc'
'6151b784050f9d4ef3eec22dd33360d3f566d4834592f1171df91a10c95fab77')
prepare() {
export ANDROID_MINIMUM_PLATFORM=${_android_platform}
source android-env ${_pkg_arch}
cd ${_pkgfqn}
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"
patch -Np1 -i "../../0004-Use-pkg-config-to-find-libjpeg.patch"
popd
pushd qtlocation
# skip building mapboxgl as it increases compile time significantly and
# likely not a lot of people actually using it; if you need it, just remove the
# following line:
patch -Np1 -i "../../0001-Disable-mapboxgl.patch"
popd
sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/mkspecs/features/android/sdk.prf
sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/src/android/jar/jar.pro
sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtgamepad/src/plugins/gamepads/android/jar/jar.pro
sed -i "s/android-16/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri
}
build() {
export ANDROID_MINIMUM_PLATFORM=${_android_platform}
source android-env ${_pkg_arch}
unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH
export PKG_CONFIG=$ANDROID_PKGCONFIG
export PYTHON=/usr/bin/python2
cd ${_pkgfqn}
configue_opts="
-confirm-license
-opensource
-prefix ${ANDROID_PREFIX}
-examplesdir ${ANDROID_PREFIX_SHARE}/qt5/examples
-testsdir ${ANDROID_PREFIX_SHARE}/qt5/tests
-xplatform android-clang
-nomake tests
-nomake examples
-android-ndk ${ANDROID_NDK_HOME}
-android-sdk ${ANDROID_HOME}
-android-ndk-host linux-x86_64
-android-toolchain-version 4.9
-skip qtserialport
-no-warnings-are-errors
-pkg-config
-system-zlib
-system-libpng
-system-libjpeg
-qt-freetype
-openssl-runtime
-android-arch ${ANDROID_ABI}
-android-ndk-platform ${ANDROID_NDK_PLATFORM}
-recheck-all
-optimized-qmake
-I${ANDROID_PREFIX}/include"
[[ $ANDROID_DEBUG_BUILD ]] \
&& configue_opts+=' -debug-and-release' \
|| configue_opts+=' -release'
# add architecture specific options
case "$_pkg_arch" in
x86*)
configue_opts+="
-no-sql-mysql
-no-sql-psql"
;;
*)
;;
esac
./configure ${configue_opts}
make $MAKEFLAGS
}
package() {
export ANDROID_MINIMUM_PLATFORM=${_android_platform}
source android-env ${_pkg_arch}
cd ${_pkgfqn}
make INSTALL_ROOT=${pkgdir} install
find ${pkgdir}/${ANDROID_PREFIX_BIN} -type f ! -name '*.pl' -exec strip {} \;
find ${pkgdir}/${ANDROID_PREFIX_LIB} -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \;
find ${pkgdir}/${ANDROID_PREFIX_LIB} -type f \( -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${ANDROID_STRIP} {} \;
find ${pkgdir}/${ANDROID_PREFIX}/plugins -type f -name 'lib*.so' -exec ${ANDROID_STRIP} {} \;
find ${pkgdir}/${ANDROID_PREFIX}/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}/${ANDROID_PREFIX_LIB}/*-android-dependencies.xml
# drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "${pkgdir}/" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
}