diff --git a/devel/apply-versions.sh b/devel/apply-versions.sh index 544f9d8f..653d7034 100755 --- a/devel/apply-versions.sh +++ b/devel/apply-versions.sh @@ -30,7 +30,7 @@ for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do # skip if version doesn't differ source "$pkgbuild_file" [[ $version == $pkgver ]] && continue - pattern='(android|apple-darwin)-.*' + pattern='(apple-darwin-.*|android-.*-(c\+\+utilities|qtutilities|passwordfile|passwordmanager))' [[ $pkgname =~ $pattern ]] && continue # check if template exists and modify template instead diff --git a/qt5/android-aarch64/0001-Disable-mapboxgl.patch b/qt5/android-aarch64/0001-Disable-mapboxgl.patch deleted file mode 100644 index 45b9c353..00000000 --- a/qt5/android-aarch64/0001-Disable-mapboxgl.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dbe68d96e7da8ba5e5484e6ad0bbd78c9b0a8eec Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:29:59 +0100 -Subject: [PATCH] Disable mapboxgl - ---- - src/plugins/geoservices/geoservices.pro | 9 --------- - 1 file changed, 9 deletions(-) - -diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro -index b81ad34a..98308c97 100644 ---- a/src/plugins/geoservices/geoservices.pro -+++ b/src/plugins/geoservices/geoservices.pro -@@ -7,12 +7,3 @@ qtConfig(geoservices_mapbox): SUBDIRS += mapbox - qtConfig(geoservices_esri): SUBDIRS += esri - qtConfig(geoservices_itemsoverlay): SUBDIRS += itemsoverlay - qtConfig(geoservices_osm): SUBDIRS += osm -- --qtConfig(geoservices_mapboxgl) { -- !exists(../../3rdparty/mapbox-gl-native/mapbox-gl-native.pro) { -- warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.") -- } else { -- SUBDIRS += mapboxgl ../../3rdparty/mapbox-gl-native -- mapboxgl.depends = ../../3rdparty/mapbox-gl-native -- } --} --- -2.23.0 - 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 deleted file mode 100644 index 05e4091c..00000000 --- a/qt5/android-aarch64/0001-Fix-clang-libc-build-under-Android.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2c8ca36b5f87ccfc039c0b669c80f21205769758 Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:28:07 +0100 -Subject: [PATCH 1/4] Fix clang/libc++ build under Android - ---- - mkspecs/android-clang/qmake.conf | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf -index 05b7979142..83d030793b 100644 ---- a/mkspecs/android-clang/qmake.conf -+++ b/mkspecs/android-clang/qmake.conf -@@ -30,11 +30,12 @@ QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info - QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ - equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a - --QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \ -+QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$ANDROID_PLATFORM_ROOT_PATH \ - -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \ - -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \ - -isystem $$NDK_ROOT/sources/android/support/include \ -- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include -+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include \ -+ -isystem $$NDK_ROOT/sysroot/usr/include - - ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH - -@@ -44,6 +45,8 @@ ANDROID_USE_LLVM = true - - exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \ - ANDROID_CXX_STL_LIBS = -lc++ -+else: exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so): \ -+ ANDROID_CXX_STL_LIBS = -lc++_shared - else: \ - ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "") - --- -2.23.0 - diff --git a/qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch b/qt5/android-aarch64/0001-Support-pkg-config-under-Android.patch similarity index 62% rename from qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch rename to qt5/android-aarch64/0001-Support-pkg-config-under-Android.patch index 66a21a05..124fd858 100644 --- a/qt5/android-armv7a-eabi/0003-Support-pkg-config-under-Android.patch +++ b/qt5/android-aarch64/0001-Support-pkg-config-under-Android.patch @@ -1,24 +1,27 @@ -From a71a1223328539ee403884a24d1dbc5a685d40dd Mon Sep 17 00:00:00 2001 +From f21b3b1871deae16696c427ca95ffd0ace0a4f70 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 7 Apr 2019 09:54:49 +0200 -Subject: [PATCH 3/4] Support pkg-config under Android +Subject: [PATCH 1/2] Support pkg-config under Android from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77 + +Change-Id: I68ebfa818ab4eec34a170602ea2c1f4824e80213 --- 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 83d030793b..8f145a2bb7 100644 +index 5cc5a20f71..c8725f1b6d 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf -@@ -53,3 +53,6 @@ else: \ - QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz +@@ -113,4 +113,7 @@ x86_64.dir_affix = x86_64 + x86_64.CONFIG = x86_64 + x86_64.deployment_identifier = x86_64 - include(../common/android-base-tail.conf) -+ +QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX] +QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config ++ + load(qt_config) -- -2.23.0 +2.28.0 diff --git a/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch b/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch deleted file mode 100644 index f01167eb..00000000 --- a/qt5/android-aarch64/0002-Fix-androiddeployqt-search-paths.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 996c53a388705a0bbf778faaf7660efad98e1eff Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:31:30 +0100 -Subject: [PATCH 2/4] Fix androiddeployqt search paths - ---- - src/tools/androiddeployqt/main.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp -index 01c392f8f9..9600d657cb 100644 ---- a/src/tools/androiddeployqt/main.cpp -+++ b/src/tools/androiddeployqt/main.cpp -@@ -1721,7 +1721,7 @@ bool scanImports(Options *options, QSet *usedDependencies) - rootPath += QLatin1Char('/'); - - QStringList importPaths; -- importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/qml")); -+ importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/lib/qt/qml")); - importPaths += shellQuote(rootPath); - for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths)) - importPaths += shellQuote(qmlImportPath); -@@ -1857,7 +1857,7 @@ bool readDependencies(Options *options) - return false; - - // Jam in the dependencies of the platform plugin, since the application will crash without it -- if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) -+ if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/lib/qt/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) - return false; - - while (!remainingDependencies.isEmpty()) { --- -2.23.0 - diff --git a/qt5/android-aarch64/0002-Force-64-bit-atomics-usage.patch b/qt5/android-aarch64/0002-Force-64-bit-atomics-usage.patch new file mode 100644 index 00000000..ecd37486 --- /dev/null +++ b/qt5/android-aarch64/0002-Force-64-bit-atomics-usage.patch @@ -0,0 +1,50 @@ +From 95b37ab2ddb476326fd803c7b0551ac3b88215b9 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 16 Sep 2020 18:18:26 +0200 +Subject: [PATCH 2/2] Force 64-bit atomics usage + +From hipersayan_x's AUR package (added with 5.14.2 update). + +Change-Id: I0c94983b5ddc2897eeabbd6ef4703f455d23f9a2 +--- + src/corelib/configure.json | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index c5e0423273..bd7ef73fe0 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -135,27 +135,17 @@ + "label": "64 bit atomics", + "test": { + "tail": [ +- "void test(volatile std::atomic &a)", ++ "void test()", + "{", +- " std::int64_t v = a.load(std::memory_order_acquire);", +- " while (!a.compare_exchange_strong(v, v + 1,", +- " std::memory_order_acq_rel,", +- " std::memory_order_acquire)) {", +- " v = a.exchange(v - 1);", +- " }", +- " a.store(v + 1, std::memory_order_release);", + "}" + ], + "main": [ +- "void *ptr = (void*)0xffffffc0; // any random pointer", +- "test(*reinterpret_cast *>(ptr));" ++ "test();" + ], + "qmake": "CONFIG += c++11" + }, +- "headers": [ "atomic", "cstdint" ], + "sources": [ +- "", +- "-latomic" ++ "" + ] + }, + "librt": { +-- +2.28.0 + diff --git a/qt5/android-aarch64/0004-Use-pkg-config-to-find-libjpeg.patch b/qt5/android-aarch64/0004-Use-pkg-config-to-find-libjpeg.patch deleted file mode 100644 index 25f5b8db..00000000 --- a/qt5/android-aarch64/0004-Use-pkg-config-to-find-libjpeg.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9cd435c730949e29104bbfa2bdd82ed2c662ca3d Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sat, 7 Sep 2019 13:21:37 +0200 -Subject: [PATCH 4/4] Use pkg-config to find libjpeg - ---- - src/gui/configure.json | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/gui/configure.json b/src/gui/configure.json -index 6280b4dfa2..206f83984a 100644 ---- a/src/gui/configure.json -+++ b/src/gui/configure.json -@@ -373,6 +373,7 @@ - }, - "headers": "jpeglib.h", - "sources": [ -+ { "type": "pkgConfig", "args": "libjpeg" }, - { "libs": "-llibjpeg", "condition": "config.msvc" }, - "-ljpeg" - ] --- -2.23.0 - diff --git a/qt5/android-aarch64/PKGBUILD b/qt5/android-aarch64/PKGBUILD index ed23394e..0b443173 100644 --- a/qt5/android-aarch64/PKGBUILD +++ b/qt5/android-aarch64/PKGBUILD @@ -7,10 +7,12 @@ _pkg_arch=aarch64 _android_arch=arm64-v8a -_android_platform=22 +_android_min_platform=24 +_android_api_platform=30 +_android_ndk_platform=$_android_min_platform pkgname=android-$_pkg_arch-qt5 -pkgver=5.13.1 +pkgver=5.15.1 pkgrel=1 pkgdesc="Qt 5 for Android" arch=('x86_64') @@ -25,20 +27,23 @@ makedepends=('libgl' 'gperf' 'libxslt' 'fontconfig' + 'ninja' 'java-environment-openjdk<=8' 'android-environment' - 'android-pkg-config' - "android-$_pkg_arch-openssl") + 'android-pkg-config') 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-platform' + "android-$_pkg_arch-libjpeg-turbo" "android-$_pkg_arch-libpng" - "android-$_pkg_arch-libjpeg-turbo") + "android-$_pkg_arch-libwebp" + "android-$_pkg_arch-libtiff" + "android-$_pkg_arch-openssl" + "android-$_pkg_arch-zlib") groups=('android-qt5') conflicts=("android-qt5-${_android_arch}") replaces=("android-qt5-${_android_arch}") @@ -68,51 +73,47 @@ 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') + '0001-Support-pkg-config-under-Android.patch' + '0002-Force-64-bit-atomics-usage.patch') +sha256sums=('44da876057e21e1be42de31facd99be7d5f9f07893e1ea762359bcee0ef64ee9' + '435047d2f09baf2e706c86604c944686e71ab6d7678203b68e7d28af7beb5ce8' + '1f0aab5dcf7976285ffbb9069f127087f15d60a23485fadf17312090453d6784') prepare() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} + check_ndk_version_ge_than 18.0 + check_android_platform + 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" + patch -Np1 -i "../../0001-Support-pkg-config-under-Android.patch" + case "$_android_arch" in + aarch64 | x86-64) + patch -Np1 -i "../../0002-Force-64-bit-atomics-usage.patch" + ;; + *) + ;; + esac 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 + sed -i "s/android-21/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri } build() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH export PKG_CONFIG=$ANDROID_PKGCONFIG + export ANDROID_TARGET_ARCH=${ANDROID_ABI} export PYTHON=/usr/bin/python2 cd ${_pkgfqn} @@ -126,24 +127,30 @@ build() { -xplatform android-clang -nomake tests -nomake examples - -android-ndk ${ANDROID_NDK_HOME} -android-sdk ${ANDROID_HOME} + -android-ndk ${ANDROID_NDK_HOME} -android-ndk-host linux-x86_64 - -android-toolchain-version 4.9 + -android-ndk-platform ${ANDROID_NDK_PLATFORM} + -android-abis ${ANDROID_ABI} -skip qtserialport + -skip qtwebengine -no-warnings-are-errors -pkg-config -system-zlib -system-libpng -system-libjpeg + -system-webp + -system-tiff + -no-feature-geoservices_mapbox + -no-feature-geoservices_mapboxgl -qt-freetype -openssl-runtime - -android-arch ${ANDROID_ABI} - -android-ndk-platform ${ANDROID_NDK_PLATFORM} - -recheck-all + -verbose -optimized-qmake -I${ANDROID_PREFIX}/include" + # note: use -recheck-all and/or -redo to continue + [[ $ANDROID_DEBUG_BUILD ]] \ && configue_opts+=' -debug-and-release' \ || configue_opts+=' -release' @@ -165,7 +172,9 @@ build() { } package() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} cd ${_pkgfqn} diff --git a/qt5/android-armv7a-eabi/0001-Disable-mapboxgl.patch b/qt5/android-armv7a-eabi/0001-Disable-mapboxgl.patch deleted file mode 100644 index 45b9c353..00000000 --- a/qt5/android-armv7a-eabi/0001-Disable-mapboxgl.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dbe68d96e7da8ba5e5484e6ad0bbd78c9b0a8eec Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:29:59 +0100 -Subject: [PATCH] Disable mapboxgl - ---- - src/plugins/geoservices/geoservices.pro | 9 --------- - 1 file changed, 9 deletions(-) - -diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro -index b81ad34a..98308c97 100644 ---- a/src/plugins/geoservices/geoservices.pro -+++ b/src/plugins/geoservices/geoservices.pro -@@ -7,12 +7,3 @@ qtConfig(geoservices_mapbox): SUBDIRS += mapbox - qtConfig(geoservices_esri): SUBDIRS += esri - qtConfig(geoservices_itemsoverlay): SUBDIRS += itemsoverlay - qtConfig(geoservices_osm): SUBDIRS += osm -- --qtConfig(geoservices_mapboxgl) { -- !exists(../../3rdparty/mapbox-gl-native/mapbox-gl-native.pro) { -- warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.") -- } else { -- SUBDIRS += mapboxgl ../../3rdparty/mapbox-gl-native -- mapboxgl.depends = ../../3rdparty/mapbox-gl-native -- } --} --- -2.23.0 - 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 deleted file mode 100644 index 05e4091c..00000000 --- a/qt5/android-armv7a-eabi/0001-Fix-clang-libc-build-under-Android.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2c8ca36b5f87ccfc039c0b669c80f21205769758 Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:28:07 +0100 -Subject: [PATCH 1/4] Fix clang/libc++ build under Android - ---- - mkspecs/android-clang/qmake.conf | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf -index 05b7979142..83d030793b 100644 ---- a/mkspecs/android-clang/qmake.conf -+++ b/mkspecs/android-clang/qmake.conf -@@ -30,11 +30,12 @@ QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info - QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ - equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a - --QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \ -+QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$ANDROID_PLATFORM_ROOT_PATH \ - -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \ - -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \ - -isystem $$NDK_ROOT/sources/android/support/include \ -- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include -+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include \ -+ -isystem $$NDK_ROOT/sysroot/usr/include - - ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH - -@@ -44,6 +45,8 @@ ANDROID_USE_LLVM = true - - exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \ - ANDROID_CXX_STL_LIBS = -lc++ -+else: exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so): \ -+ ANDROID_CXX_STL_LIBS = -lc++_shared - else: \ - ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "") - --- -2.23.0 - diff --git a/qt5/android-x86-64/0003-Support-pkg-config-under-Android.patch b/qt5/android-armv7a-eabi/0001-Support-pkg-config-under-Android.patch similarity index 62% rename from qt5/android-x86-64/0003-Support-pkg-config-under-Android.patch rename to qt5/android-armv7a-eabi/0001-Support-pkg-config-under-Android.patch index 66a21a05..124fd858 100644 --- a/qt5/android-x86-64/0003-Support-pkg-config-under-Android.patch +++ b/qt5/android-armv7a-eabi/0001-Support-pkg-config-under-Android.patch @@ -1,24 +1,27 @@ -From a71a1223328539ee403884a24d1dbc5a685d40dd Mon Sep 17 00:00:00 2001 +From f21b3b1871deae16696c427ca95ffd0ace0a4f70 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 7 Apr 2019 09:54:49 +0200 -Subject: [PATCH 3/4] Support pkg-config under Android +Subject: [PATCH 1/2] Support pkg-config under Android from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77 + +Change-Id: I68ebfa818ab4eec34a170602ea2c1f4824e80213 --- 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 83d030793b..8f145a2bb7 100644 +index 5cc5a20f71..c8725f1b6d 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf -@@ -53,3 +53,6 @@ else: \ - QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz +@@ -113,4 +113,7 @@ x86_64.dir_affix = x86_64 + x86_64.CONFIG = x86_64 + x86_64.deployment_identifier = x86_64 - include(../common/android-base-tail.conf) -+ +QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX] +QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config ++ + load(qt_config) -- -2.23.0 +2.28.0 diff --git a/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch b/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch deleted file mode 100644 index f01167eb..00000000 --- a/qt5/android-armv7a-eabi/0002-Fix-androiddeployqt-search-paths.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 996c53a388705a0bbf778faaf7660efad98e1eff Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:31:30 +0100 -Subject: [PATCH 2/4] Fix androiddeployqt search paths - ---- - src/tools/androiddeployqt/main.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp -index 01c392f8f9..9600d657cb 100644 ---- a/src/tools/androiddeployqt/main.cpp -+++ b/src/tools/androiddeployqt/main.cpp -@@ -1721,7 +1721,7 @@ bool scanImports(Options *options, QSet *usedDependencies) - rootPath += QLatin1Char('/'); - - QStringList importPaths; -- importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/qml")); -+ importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/lib/qt/qml")); - importPaths += shellQuote(rootPath); - for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths)) - importPaths += shellQuote(qmlImportPath); -@@ -1857,7 +1857,7 @@ bool readDependencies(Options *options) - return false; - - // Jam in the dependencies of the platform plugin, since the application will crash without it -- if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) -+ if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/lib/qt/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) - return false; - - while (!remainingDependencies.isEmpty()) { --- -2.23.0 - diff --git a/qt5/android-armv7a-eabi/0002-Force-64-bit-atomics-usage.patch b/qt5/android-armv7a-eabi/0002-Force-64-bit-atomics-usage.patch new file mode 100644 index 00000000..ecd37486 --- /dev/null +++ b/qt5/android-armv7a-eabi/0002-Force-64-bit-atomics-usage.patch @@ -0,0 +1,50 @@ +From 95b37ab2ddb476326fd803c7b0551ac3b88215b9 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 16 Sep 2020 18:18:26 +0200 +Subject: [PATCH 2/2] Force 64-bit atomics usage + +From hipersayan_x's AUR package (added with 5.14.2 update). + +Change-Id: I0c94983b5ddc2897eeabbd6ef4703f455d23f9a2 +--- + src/corelib/configure.json | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index c5e0423273..bd7ef73fe0 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -135,27 +135,17 @@ + "label": "64 bit atomics", + "test": { + "tail": [ +- "void test(volatile std::atomic &a)", ++ "void test()", + "{", +- " std::int64_t v = a.load(std::memory_order_acquire);", +- " while (!a.compare_exchange_strong(v, v + 1,", +- " std::memory_order_acq_rel,", +- " std::memory_order_acquire)) {", +- " v = a.exchange(v - 1);", +- " }", +- " a.store(v + 1, std::memory_order_release);", + "}" + ], + "main": [ +- "void *ptr = (void*)0xffffffc0; // any random pointer", +- "test(*reinterpret_cast *>(ptr));" ++ "test();" + ], + "qmake": "CONFIG += c++11" + }, +- "headers": [ "atomic", "cstdint" ], + "sources": [ +- "", +- "-latomic" ++ "" + ] + }, + "librt": { +-- +2.28.0 + diff --git a/qt5/android-armv7a-eabi/0004-Use-pkg-config-to-find-libjpeg.patch b/qt5/android-armv7a-eabi/0004-Use-pkg-config-to-find-libjpeg.patch deleted file mode 100644 index 25f5b8db..00000000 --- a/qt5/android-armv7a-eabi/0004-Use-pkg-config-to-find-libjpeg.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9cd435c730949e29104bbfa2bdd82ed2c662ca3d Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sat, 7 Sep 2019 13:21:37 +0200 -Subject: [PATCH 4/4] Use pkg-config to find libjpeg - ---- - src/gui/configure.json | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/gui/configure.json b/src/gui/configure.json -index 6280b4dfa2..206f83984a 100644 ---- a/src/gui/configure.json -+++ b/src/gui/configure.json -@@ -373,6 +373,7 @@ - }, - "headers": "jpeglib.h", - "sources": [ -+ { "type": "pkgConfig", "args": "libjpeg" }, - { "libs": "-llibjpeg", "condition": "config.msvc" }, - "-ljpeg" - ] --- -2.23.0 - diff --git a/qt5/android-armv7a-eabi/PKGBUILD b/qt5/android-armv7a-eabi/PKGBUILD index 3485e5c8..430f4e05 100644 --- a/qt5/android-armv7a-eabi/PKGBUILD +++ b/qt5/android-armv7a-eabi/PKGBUILD @@ -7,10 +7,12 @@ _pkg_arch=armv7a-eabi _android_arch=armeabi-v7a -_android_platform=21 +_android_min_platform=24 +_android_api_platform=30 +_android_ndk_platform=$_android_min_platform pkgname=android-$_pkg_arch-qt5 -pkgver=5.13.1 +pkgver=5.15.1 pkgrel=1 pkgdesc="Qt 5 for Android" arch=('x86_64') @@ -25,20 +27,23 @@ makedepends=('libgl' 'gperf' 'libxslt' 'fontconfig' + 'ninja' 'java-environment-openjdk<=8' 'android-environment' - 'android-pkg-config' - "android-$_pkg_arch-openssl") + 'android-pkg-config') 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-platform' + "android-$_pkg_arch-libjpeg-turbo" "android-$_pkg_arch-libpng" - "android-$_pkg_arch-libjpeg-turbo") + "android-$_pkg_arch-libwebp" + "android-$_pkg_arch-libtiff" + "android-$_pkg_arch-openssl" + "android-$_pkg_arch-zlib") groups=('android-qt5') conflicts=("android-qt5-${_android_arch}") replaces=("android-qt5-${_android_arch}") @@ -68,51 +73,47 @@ 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') + '0001-Support-pkg-config-under-Android.patch' + '0002-Force-64-bit-atomics-usage.patch') +sha256sums=('44da876057e21e1be42de31facd99be7d5f9f07893e1ea762359bcee0ef64ee9' + '435047d2f09baf2e706c86604c944686e71ab6d7678203b68e7d28af7beb5ce8' + '1f0aab5dcf7976285ffbb9069f127087f15d60a23485fadf17312090453d6784') prepare() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} + check_ndk_version_ge_than 18.0 + check_android_platform + 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" + patch -Np1 -i "../../0001-Support-pkg-config-under-Android.patch" + case "$_android_arch" in + aarch64 | x86-64) + patch -Np1 -i "../../0002-Force-64-bit-atomics-usage.patch" + ;; + *) + ;; + esac 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 + sed -i "s/android-21/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri } build() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH export PKG_CONFIG=$ANDROID_PKGCONFIG + export ANDROID_TARGET_ARCH=${ANDROID_ABI} export PYTHON=/usr/bin/python2 cd ${_pkgfqn} @@ -126,24 +127,30 @@ build() { -xplatform android-clang -nomake tests -nomake examples - -android-ndk ${ANDROID_NDK_HOME} -android-sdk ${ANDROID_HOME} + -android-ndk ${ANDROID_NDK_HOME} -android-ndk-host linux-x86_64 - -android-toolchain-version 4.9 + -android-ndk-platform ${ANDROID_NDK_PLATFORM} + -android-abis ${ANDROID_ABI} -skip qtserialport + -skip qtwebengine -no-warnings-are-errors -pkg-config -system-zlib -system-libpng -system-libjpeg + -system-webp + -system-tiff + -no-feature-geoservices_mapbox + -no-feature-geoservices_mapboxgl -qt-freetype -openssl-runtime - -android-arch ${ANDROID_ABI} - -android-ndk-platform ${ANDROID_NDK_PLATFORM} - -recheck-all + -verbose -optimized-qmake -I${ANDROID_PREFIX}/include" + # note: use -recheck-all and/or -redo to continue + [[ $ANDROID_DEBUG_BUILD ]] \ && configue_opts+=' -debug-and-release' \ || configue_opts+=' -release' @@ -165,7 +172,9 @@ build() { } package() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} cd ${_pkgfqn} diff --git a/qt5/android-x86-64/0001-Disable-mapboxgl.patch b/qt5/android-x86-64/0001-Disable-mapboxgl.patch deleted file mode 100644 index 45b9c353..00000000 --- a/qt5/android-x86-64/0001-Disable-mapboxgl.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dbe68d96e7da8ba5e5484e6ad0bbd78c9b0a8eec Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:29:59 +0100 -Subject: [PATCH] Disable mapboxgl - ---- - src/plugins/geoservices/geoservices.pro | 9 --------- - 1 file changed, 9 deletions(-) - -diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro -index b81ad34a..98308c97 100644 ---- a/src/plugins/geoservices/geoservices.pro -+++ b/src/plugins/geoservices/geoservices.pro -@@ -7,12 +7,3 @@ qtConfig(geoservices_mapbox): SUBDIRS += mapbox - qtConfig(geoservices_esri): SUBDIRS += esri - qtConfig(geoservices_itemsoverlay): SUBDIRS += itemsoverlay - qtConfig(geoservices_osm): SUBDIRS += osm -- --qtConfig(geoservices_mapboxgl) { -- !exists(../../3rdparty/mapbox-gl-native/mapbox-gl-native.pro) { -- warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.") -- } else { -- SUBDIRS += mapboxgl ../../3rdparty/mapbox-gl-native -- mapboxgl.depends = ../../3rdparty/mapbox-gl-native -- } --} --- -2.23.0 - diff --git a/qt5/android-x86-64/0001-Fix-clang-libc-build-under-Android.patch b/qt5/android-x86-64/0001-Fix-clang-libc-build-under-Android.patch deleted file mode 100644 index 05e4091c..00000000 --- a/qt5/android-x86-64/0001-Fix-clang-libc-build-under-Android.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2c8ca36b5f87ccfc039c0b669c80f21205769758 Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:28:07 +0100 -Subject: [PATCH 1/4] Fix clang/libc++ build under Android - ---- - mkspecs/android-clang/qmake.conf | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf -index 05b7979142..83d030793b 100644 ---- a/mkspecs/android-clang/qmake.conf -+++ b/mkspecs/android-clang/qmake.conf -@@ -30,11 +30,12 @@ QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info - QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ - equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a - --QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \ -+QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$ANDROID_PLATFORM_ROOT_PATH \ - -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \ - -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \ - -isystem $$NDK_ROOT/sources/android/support/include \ -- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include -+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include \ -+ -isystem $$NDK_ROOT/sysroot/usr/include - - ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH - -@@ -44,6 +45,8 @@ ANDROID_USE_LLVM = true - - exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \ - ANDROID_CXX_STL_LIBS = -lc++ -+else: exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so): \ -+ ANDROID_CXX_STL_LIBS = -lc++_shared - else: \ - ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "") - --- -2.23.0 - diff --git a/qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch b/qt5/android-x86-64/0001-Support-pkg-config-under-Android.patch similarity index 62% rename from qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch rename to qt5/android-x86-64/0001-Support-pkg-config-under-Android.patch index 66a21a05..124fd858 100644 --- a/qt5/android-aarch64/0003-Support-pkg-config-under-Android.patch +++ b/qt5/android-x86-64/0001-Support-pkg-config-under-Android.patch @@ -1,24 +1,27 @@ -From a71a1223328539ee403884a24d1dbc5a685d40dd Mon Sep 17 00:00:00 2001 +From f21b3b1871deae16696c427ca95ffd0ace0a4f70 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 7 Apr 2019 09:54:49 +0200 -Subject: [PATCH 3/4] Support pkg-config under Android +Subject: [PATCH 1/2] Support pkg-config under Android from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77 + +Change-Id: I68ebfa818ab4eec34a170602ea2c1f4824e80213 --- 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 83d030793b..8f145a2bb7 100644 +index 5cc5a20f71..c8725f1b6d 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf -@@ -53,3 +53,6 @@ else: \ - QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz +@@ -113,4 +113,7 @@ x86_64.dir_affix = x86_64 + x86_64.CONFIG = x86_64 + x86_64.deployment_identifier = x86_64 - include(../common/android-base-tail.conf) -+ +QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX] +QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config ++ + load(qt_config) -- -2.23.0 +2.28.0 diff --git a/qt5/android-x86-64/0002-Fix-androiddeployqt-search-paths.patch b/qt5/android-x86-64/0002-Fix-androiddeployqt-search-paths.patch deleted file mode 100644 index f01167eb..00000000 --- a/qt5/android-x86-64/0002-Fix-androiddeployqt-search-paths.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 996c53a388705a0bbf778faaf7660efad98e1eff Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sun, 9 Dec 2018 14:31:30 +0100 -Subject: [PATCH 2/4] Fix androiddeployqt search paths - ---- - src/tools/androiddeployqt/main.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp -index 01c392f8f9..9600d657cb 100644 ---- a/src/tools/androiddeployqt/main.cpp -+++ b/src/tools/androiddeployqt/main.cpp -@@ -1721,7 +1721,7 @@ bool scanImports(Options *options, QSet *usedDependencies) - rootPath += QLatin1Char('/'); - - QStringList importPaths; -- importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/qml")); -+ importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/lib/qt/qml")); - importPaths += shellQuote(rootPath); - for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths)) - importPaths += shellQuote(qmlImportPath); -@@ -1857,7 +1857,7 @@ bool readDependencies(Options *options) - return false; - - // Jam in the dependencies of the platform plugin, since the application will crash without it -- if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) -+ if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/lib/qt/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) - return false; - - while (!remainingDependencies.isEmpty()) { --- -2.23.0 - diff --git a/qt5/android-x86-64/0002-Force-64-bit-atomics-usage.patch b/qt5/android-x86-64/0002-Force-64-bit-atomics-usage.patch new file mode 100644 index 00000000..ecd37486 --- /dev/null +++ b/qt5/android-x86-64/0002-Force-64-bit-atomics-usage.patch @@ -0,0 +1,50 @@ +From 95b37ab2ddb476326fd803c7b0551ac3b88215b9 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Wed, 16 Sep 2020 18:18:26 +0200 +Subject: [PATCH 2/2] Force 64-bit atomics usage + +From hipersayan_x's AUR package (added with 5.14.2 update). + +Change-Id: I0c94983b5ddc2897eeabbd6ef4703f455d23f9a2 +--- + src/corelib/configure.json | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index c5e0423273..bd7ef73fe0 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -135,27 +135,17 @@ + "label": "64 bit atomics", + "test": { + "tail": [ +- "void test(volatile std::atomic &a)", ++ "void test()", + "{", +- " std::int64_t v = a.load(std::memory_order_acquire);", +- " while (!a.compare_exchange_strong(v, v + 1,", +- " std::memory_order_acq_rel,", +- " std::memory_order_acquire)) {", +- " v = a.exchange(v - 1);", +- " }", +- " a.store(v + 1, std::memory_order_release);", + "}" + ], + "main": [ +- "void *ptr = (void*)0xffffffc0; // any random pointer", +- "test(*reinterpret_cast *>(ptr));" ++ "test();" + ], + "qmake": "CONFIG += c++11" + }, +- "headers": [ "atomic", "cstdint" ], + "sources": [ +- "", +- "-latomic" ++ "" + ] + }, + "librt": { +-- +2.28.0 + diff --git a/qt5/android-x86-64/0004-Use-pkg-config-to-find-libjpeg.patch b/qt5/android-x86-64/0004-Use-pkg-config-to-find-libjpeg.patch deleted file mode 100644 index 25f5b8db..00000000 --- a/qt5/android-x86-64/0004-Use-pkg-config-to-find-libjpeg.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9cd435c730949e29104bbfa2bdd82ed2c662ca3d Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sat, 7 Sep 2019 13:21:37 +0200 -Subject: [PATCH 4/4] Use pkg-config to find libjpeg - ---- - src/gui/configure.json | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/gui/configure.json b/src/gui/configure.json -index 6280b4dfa2..206f83984a 100644 ---- a/src/gui/configure.json -+++ b/src/gui/configure.json -@@ -373,6 +373,7 @@ - }, - "headers": "jpeglib.h", - "sources": [ -+ { "type": "pkgConfig", "args": "libjpeg" }, - { "libs": "-llibjpeg", "condition": "config.msvc" }, - "-ljpeg" - ] --- -2.23.0 - diff --git a/qt5/android-x86-64/PKGBUILD b/qt5/android-x86-64/PKGBUILD index 77dc8d1f..54c4f338 100644 --- a/qt5/android-x86-64/PKGBUILD +++ b/qt5/android-x86-64/PKGBUILD @@ -7,10 +7,12 @@ _pkg_arch=x86-64 _android_arch=x86_64 -_android_platform=22 +_android_min_platform=24 +_android_api_platform=30 +_android_ndk_platform=$_android_min_platform pkgname=android-$_pkg_arch-qt5 -pkgver=5.13.1 +pkgver=5.15.1 pkgrel=1 pkgdesc="Qt 5 for Android" arch=('x86_64') @@ -25,20 +27,23 @@ makedepends=('libgl' 'gperf' 'libxslt' 'fontconfig' + 'ninja' 'java-environment-openjdk<=8' 'android-environment' - 'android-pkg-config' - "android-$_pkg_arch-openssl") + 'android-pkg-config') 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-platform' + "android-$_pkg_arch-libjpeg-turbo" "android-$_pkg_arch-libpng" - "android-$_pkg_arch-libjpeg-turbo") + "android-$_pkg_arch-libwebp" + "android-$_pkg_arch-libtiff" + "android-$_pkg_arch-openssl" + "android-$_pkg_arch-zlib") groups=('android-qt5') conflicts=("android-qt5-${_android_arch}") replaces=("android-qt5-${_android_arch}") @@ -68,51 +73,47 @@ 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') + '0001-Support-pkg-config-under-Android.patch' + '0002-Force-64-bit-atomics-usage.patch') +sha256sums=('44da876057e21e1be42de31facd99be7d5f9f07893e1ea762359bcee0ef64ee9' + '435047d2f09baf2e706c86604c944686e71ab6d7678203b68e7d28af7beb5ce8' + '1f0aab5dcf7976285ffbb9069f127087f15d60a23485fadf17312090453d6784') prepare() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} + check_ndk_version_ge_than 18.0 + check_android_platform + 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" + patch -Np1 -i "../../0001-Support-pkg-config-under-Android.patch" + case "$_android_arch" in + aarch64 | x86-64) + patch -Np1 -i "../../0002-Force-64-bit-atomics-usage.patch" + ;; + *) + ;; + esac 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 + sed -i "s/android-21/android-$ANDROID_MINIMUM_PLATFORM/g" qtbase/configure.pri } build() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} unset CC CXX CFLAGS CXXFLAGS LDFLAGS CHOST QMAKESPEC QTDIR CARCH export PKG_CONFIG=$ANDROID_PKGCONFIG + export ANDROID_TARGET_ARCH=${ANDROID_ABI} export PYTHON=/usr/bin/python2 cd ${_pkgfqn} @@ -126,24 +127,30 @@ build() { -xplatform android-clang -nomake tests -nomake examples - -android-ndk ${ANDROID_NDK_HOME} -android-sdk ${ANDROID_HOME} + -android-ndk ${ANDROID_NDK_HOME} -android-ndk-host linux-x86_64 - -android-toolchain-version 4.9 + -android-ndk-platform ${ANDROID_NDK_PLATFORM} + -android-abis ${ANDROID_ABI} -skip qtserialport + -skip qtwebengine -no-warnings-are-errors -pkg-config -system-zlib -system-libpng -system-libjpeg + -system-webp + -system-tiff + -no-feature-geoservices_mapbox + -no-feature-geoservices_mapboxgl -qt-freetype -openssl-runtime - -android-arch ${ANDROID_ABI} - -android-ndk-platform ${ANDROID_NDK_PLATFORM} - -recheck-all + -verbose -optimized-qmake -I${ANDROID_PREFIX}/include" + # note: use -recheck-all and/or -redo to continue + [[ $ANDROID_DEBUG_BUILD ]] \ && configue_opts+=' -debug-and-release' \ || configue_opts+=' -release' @@ -165,7 +172,9 @@ build() { } package() { - export ANDROID_MINIMUM_PLATFORM=${_android_platform} + export ANDROID_MINIMUM_PLATFORM=$_android_min_platform + export ANDROID_API_VERSION=android-$_android_api_platform + export ANDROID_NDK_PLATFORM=android-$_android_ndk_platform source android-env ${_pkg_arch} cd ${_pkgfqn}