blob: 9600d1e3819c35f3ee37dac0540fd0d0e0462330 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# Maintainer: Martchus <martchus@gmx.net>
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository.
# This file is created from PKGBUILD.sh.ep contained by the mentioned repository.
# Do not edit it manually! See README.md in the repository's root directory
# for more information.
# All patches are managed at https://github.com/Martchus/qtbase
_android_arch=aarch64
pkgname=android-aarch64-qt6-base
_qtver=6.9.0
pkgver=${_qtver/-/}
pkgrel=1
arch=(any)
url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom)
pkgdesc='A cross-platform application and UI framework (android)'
depends=('java-runtime-headless-openjdk=17' 'ant' 'android-ndk' 'android-sdk' 'android-sdk-build-tools'
'android-sdk-platform-tools' 'android-platform-34' "android-${_android_arch}-libjpeg-turbo"
"android-${_android_arch}-libpng" "android-${_android_arch}-openssl" "android-${_android_arch}-zlib"
"android-${_android_arch}-sqlite")
makedepends=('android-cmake' 'android-pkg-config'
'java-environment-openjdk=17' 'qt6-base' 'ninja')
optdepends=('qt6-base: development tools')
# note: Using the java-environment-openjdk and android-platform-X versions that match what is documented
# on https://doc.qt.io/qt-6/supported-platforms.html#android because using unsupported versions is not a
# good idea (see e.g. https://bugreports.qt.io/browse/QTBUG-119223 for Java; using a newer version of
# android-platform also did not work in my tests with Qt 6.7.2 and android-platform 35).
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
groups=(android-${_android_arch}-qt6)
_pkgfqn="qtbase-everywhere-src-${_qtver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
'0001-Use-CMake-s-default-import-library-suffix.patch'
'0002-Fix-finding-D-Bus.patch'
'0003-Fix-using-static-PCRE2-and-DBus-1.patch'
'0004-Fix-transitive-dependencies-of-static-libraries.patch'
'0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch'
'0006-Support-finding-static-MariaDB-client-library.patch'
'0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch'
'0008-Find-fontconfig-via-pkg-config-for-correct-handling-.patch'
'0009-Fix-dependency-of-xcb-image-on-xcb-util.patch'
'0010-Allow-using-properties-of-PkgConfig-targets-for-glib.patch'
'0011-Allow-using-properties-of-PkgConfig-targets-for-Wayl.patch'
'0012-Allow-overriding-preference-for-shared-libzstd-libra.patch'
'0013-Fix-errors-due-to-disabled-exceptions-with-cpp_winrt.patch'
'0014-Link-corelib-correctly-against-runtimeobject-when-co.patch'
'0015-Workaround-linker-error-about-missing-symbol-__sync_.patch'
'0016-Workaround-Unknown-CMake-command-_qt_test_emscripten.patch'
'0017-Fix-configuration-when-EMSCRIPTEN_ROOT-is-an-absolut.patch'
'0018-Allow-handling-Android-activity-lifecycle-by-user-pr.patch'
'0019-Avoid-compile-error-due-to-inconsistent-use-of-noexc.patch')
sha256sums=('c1800c2ea835801af04a05d4a32321d79a93954ee3ae2172bbeacf13d1f0598c'
'33b840666d25b811793ab7036f283808985e25759a26fd7774a8a3806f3b6623'
'f98ea3a3dd22978ce810fd6905679dcc1a6169581370a5df271bfaafc321e171'
'a5ceea4ec85ff27584d3a037bfec6a6c781c262dc9f79bb85ab3330fb10222f2'
'cb3dca040644e16dcb793582da514ce05c6e30949e9970f9c6009baa5204d2c8'
'bdc57cd43bd43cc7f7314b974c2f350279808d8917bb9ececca0ad6c5d76cb4f'
'c15773c5aeddb6a7e5a64519b7fdecda41e18b3b1aef7636ed0f5c749ee4bc2b'
'24a1926b9846bb7f952b4a04c913d94bbdd9e467997bea64a5f8ff2c1bd7b393'
'c74c59c11fc00fe31c534bbe2ebf145130bfa126cdff949e1b0a0f0787cf0893'
'dadde9eeb666f67fda6b060a224cb38cb3cd4f5fdb7fb6ed3a2ddf51552ccc37'
'0573476620eca661c8c2857448e019dfac4a40b7f919a8243bb47771cf11ab08'
'e0b69a9c2bc2ab00357b8b7348695b460751dfa8bc3e3facf34250c9ec795185'
'4b1c4c95debb340a0aae66214f67074557cda9ff360334f01b89cc55ad397351'
'01c817322bbf9652e4566f002651dd3fb51cdc09fa6b1039615807f96afb5f1b'
'06e83450a1767fbff9c5621b9483989cccc14b2ff71727f503e37cd837f27777'
'af2616c13115a11edd9230110dd34443f8f8a51e894d053609f37224c084dd35'
'd2696b6df1e2c7aa1bc201c7e0176d77d5fd2a4ea177d263e7221486409a6e75'
'3c4beba49164d9d3b7d102a7eceb0057d8a226f4811aeaad19d1cfcbb987f900'
'd422db7b864b8158bc45d1049edf342915e7eb134aeb278eadd3158c8dd526de'
'c53b4c041bda08e637573d1c54857704e54bf4c36054a4aeb2d8b9c6ee0486d0')
prepare () {
cd $_pkgfqn
# apply patches; further descriptions can be found in patch files itself
for patch in "$srcdir/"*.patch; do
msg2 "Applying patch $patch"
patch -p1 -i "$patch"
done
}
build() {
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
source android-env ${_android_arch}
android-${_android_arch}-cmake -G Ninja -B build-$_android_arch -S $_pkgfqn \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_PREFIX}" \
-DQT_BINARY_DIR=${ANDROID_PREFIX_BIN} \
-DQT_INCLUDE_DIRS_NO_SYSTEM=ON \
-DQT_HOST_PATH=/usr \
-DANDROID_SDK_ROOT=${ANDROID_HOME} \
-DANDROID_NDK_ROOT=${ANDROID_NDK_HOME} \
-DANDROID_STL="c++_shared" \
-DFEATURE_pkg_config=ON \
-DFEATURE_system_pcre2=OFF \
-DFEATURE_system_freetype=OFF \
-DFEATURE_system_harfbuzz=OFF \
-DFEATURE_system_sqlite=ON \
-DFEATURE_system_libjpeg=ON \
-DFEATURE_system_libpng=ON \
-DFEATURE_system_zlib=ON \
-DINSTALL_DOCDIR=share/doc/qt6 \
-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
-DINPUT_openssl=runtime
VERBOSE=1 cmake --build build-$_android_arch
# note: Avoid using `-DINSTALL_` options like in the regular package to avoid any problems with androiddeployqt.
}
package() {
source android-env ${_android_arch}
DESTDIR="$pkgdir" cmake --install build-$_android_arch
install -Dm644 $_pkgfqn/LICENSES/* -t "$pkgdir"/usr/share/licenses/$pkgname
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/${ANDROID_PREFIX}/" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.so' -exec ${ANDROID_STRIP} -g --strip-unneeded {} \;
find ${pkgdir}/${ANDROID_PREFIX} -type f -name 'lib*.a' -exec ${ANDROID_STRIP} -g {} \;
[[ -d "${pkgdir}/${ANDROID_PREFIX}/share/doc" ]] && rm -r "${pkgdir}/${ANDROID_PREFIX}/share/doc" || true
}
|