Update Android packages

* Update to latest version(s)
* Change name scheme
* Use Clang/libc++ everywhere
This commit is contained in:
Martchus 2018-11-24 02:41:08 +01:00
parent 8da2906e72
commit afbe1209a8
19 changed files with 357 additions and 257 deletions

View File

@ -4,26 +4,29 @@
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_pkgname=boost _pkgname=boost
_pkg_arch=aarch64
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _android_toolchain=$_pkg_arch-linux-android
_android_prefix=/opt/android-libs/$_android_arch _android_platform=22
_android_prefix=/opt/android-libs/$_pkg_arch
_android_ndk_path=/opt/android-ndk _android_ndk_path=/opt/android-ndk
_android_api_level=21 _android_platform_dir=android-$_android_platform/arch-arm64
_android_platform=android-$_android_api_level/arch-arm64
_boost_arch=arm _boost_arch=arm
_boost_address_model=64 _boost_address_model=64
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.68.0 pkgver=1.68.0
_boostver=${pkgver//./_} _boostver=${pkgver//./_}
pkgrel=1 pkgrel=1
url='http://www.boost.org/' url='http://www.boost.org/'
arch=('any') arch=('any')
license=('custom') license=('custom')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_android_arch)" pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)"
depends=("boost-libs=${pkgver}" "android-libiconv-$_android_arch") depends=("android-$_pkg_arch-libiconv")
options=(!buildflags staticlibs !strip !emptydirs) options=(!buildflags staticlibs !strip !emptydirs)
makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk') makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
source=(https://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}_${_boostver}.tar.bz2 source=(https://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}_${_boostver}.tar.bz2
no-versioned-shlibs.patch) no-versioned-shlibs.patch)
sha256sums=('7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7' sha256sums=('7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7'
@ -40,7 +43,7 @@ build() {
local target_flags=" \ local target_flags=" \
--target=$_android_toolchain \ --target=$_android_toolchain \
--gcc-toolchain=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \ --gcc-toolchain=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \
--sysroot=$_android_ndk_path/platforms/$_android_platform/usr" --sysroot=$_android_ndk_path/platforms/$_android_platform_dir/usr"
local common_flags=" \ local common_flags=" \
$target_flags \ $target_flags \
-isystem $_android_ndk_path/sources/android/support/include \ -isystem $_android_ndk_path/sources/android/support/include \
@ -50,7 +53,7 @@ build() {
-isystem $_android_ndk_path/sysroot/usr/include/$_android_toolchain \ -isystem $_android_ndk_path/sysroot/usr/include/$_android_toolchain \
-funwind-tables \ -funwind-tables \
-no-canonical-prefixes \ -no-canonical-prefixes \
-D__ANDROID_API__=$_android_api_level \ -D__ANDROID_API__=$_android_platform \
-O3 \ -O3 \
-fPIC \ -fPIC \
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1" -DBOOST_ASIO_HAS_STD_STRING_VIEW=1"

View File

@ -6,21 +6,25 @@
_reponame=cpp-utilities _reponame=cpp-utilities
_pkgname=c++utilities _pkgname=c++utilities
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _pkg_arch=aarch64
_prefix=/opt/android-libs/$_android_arch _android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
pkgver=4.16.0 pkgver=4.16.0
pkgrel=1 pkgrel=1
arch=('any') arch=('any')
pkgdesc="Common C++ classes and routines such as argument parser, IO and conversion utilities (Android, $_android_arch)" pkgdesc="Common C++ classes and routines such as argument parser, IO and conversion utilities (Android, $_pkg_arch)"
license=('GPL') license=('GPL')
depends=("android-libiconv-$_android_arch" "android-boost-$_android_arch") depends=("android-$_pkg_arch-libiconv" "android-$_pkg_arch-boost")
optdepends=("$_pkgname-doc: API documentation") optdepends=("$_pkgname-doc: API documentation")
checkdepends=("android-cppunit-$_android_arch") checkdepends=("android-$_pkg_arch-cppunit")
# FIXME: run tests with qemu # FIXME: run tests with qemu
#checkdepends+=('qemu-binfmt-arm' "android-linker-$_android_arch") #checkdepends+=('qemu-binfmt-arm' "android-$_pkg_arch-linker")
makedepends=('cmake' 'android-ndk' 'android-sdk') makedepends=('cmake' 'android-ndk' 'android-sdk')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('c4487d6e684c523e596bfc91203a6f10609606786553517bcf44ffae181feaa5') sha256sums=('c4487d6e684c523e596bfc91203a6f10609606786553517bcf44ffae181feaa5')
@ -39,7 +43,7 @@ build() {
cmake \ cmake \
-DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=21 \ -DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \ -DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_SDK="$android_sdk_path" \ -DCMAKE_ANDROID_SDK="$android_sdk_path" \
-DCMAKE_ANDROID_NDK="$android_ndk_path" \ -DCMAKE_ANDROID_NDK="$android_ndk_path" \
@ -82,8 +86,8 @@ package() {
make DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" install
# add tests to the package for possibly executing them later under Android # add tests to the package for possibly executing them later under Android
if [[ -f c++utilities_tests ]]; then if [[ -f ${_pkgname}_tests ]]; then
mkdir "${pkgdir}/$_prefix/bin" mkdir "${pkgdir}/$_prefix/bin"
cp c++utilities_tests "${pkgdir}/$_prefix/bin" cp ${_pkgname}_tests "${pkgdir}/$_prefix/bin"
fi fi
} }

View File

@ -5,9 +5,10 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_name=cppunit _pkgname=cppunit
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_ndk_path=/opt/android-ndk _android_ndk_path=/opt/android-ndk
_android_api_level=28 _android_api_level=28
_android_platform=android-28/arch-arm64 _android_platform=android-28/arch-arm64
@ -16,9 +17,9 @@ _android_sysroot=${_android_ndk_path}/platforms/android-28/arch-arm64
_android_gcc_toolchain_path=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 _android_gcc_toolchain_path=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64
_android_gcc_tool_prefix=${_android_gcc_toolchain_path}/bin/${_android_toolchain} _android_gcc_tool_prefix=${_android_gcc_toolchain_path}/bin/${_android_toolchain}
_android_clang_toolchain_path=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin _android_clang_toolchain_path=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin
_install_prefix=/opt/android-libs/$_android_arch _install_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_name-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.14.0 pkgver=1.14.0
pkgrel=1 pkgrel=1
pkgdesc="A C++ unit testing framework (Android, $_android_arch)" pkgdesc="A C++ unit testing framework (Android, $_android_arch)"
@ -26,11 +27,14 @@ arch=('any')
url="http://www.freedesktop.org/wiki/Software/cppunit" url="http://www.freedesktop.org/wiki/Software/cppunit"
license=('LGPL') license=('LGPL')
depends=('android-ndk') depends=('android-ndk')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
options=(!strip !buildflags !libtool staticlibs !emptydirs) options=(!strip !buildflags !libtool staticlibs !emptydirs)
source=("https://dev-www.libreoffice.org/src/${_name}-${pkgver}.tar.gz") source=("https://dev-www.libreoffice.org/src/${_pkgname}-${pkgver}.tar.gz")
sha256sums=('3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780') sha256sums=('3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780')
build() { build() {
# configure flags
local target_flags=" \ local target_flags=" \
--target=$_android_toolchain \ --target=$_android_toolchain \
--gcc-toolchain=$_android_gcc_toolchain_path \ --gcc-toolchain=$_android_gcc_toolchain_path \
@ -52,7 +56,12 @@ build() {
local ld_flags=" \ local ld_flags=" \
$_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \ $_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \
-nostdlib++" -nostdlib++"
export CPPFLAGS="$common_flags"
export CFLAGS="$common_flags $ld_flags"
export CXXFLAGS="$common_flags -fexceptions -frtti -std=c++14 $ld_flags"
export LDFLAGS="$target_flags $ld_flags"
# configure tools
export AR=${_android_gcc_tool_prefix}-ar export AR=${_android_gcc_tool_prefix}-ar
export AS=${_android_gcc_tool_prefix}-as export AS=${_android_gcc_tool_prefix}-as
export NM=${_android_gcc_tool_prefix}-nm export NM=${_android_gcc_tool_prefix}-nm
@ -62,13 +71,8 @@ build() {
export RANLIB=${_android_gcc_tool_prefix}-ranlib export RANLIB=${_android_gcc_tool_prefix}-ranlib
export STRIP=${_android_gcc_tool_prefix}-strip export STRIP=${_android_gcc_tool_prefix}-strip
export CPPFLAGS="$common_flags" mkdir -p "${srcdir}/${_pkgname}-${pkgver}/build-${_android_toolchain}"
export CFLAGS="$common_flags $ld_flags" cd "${srcdir}/${_pkgname}-${pkgver}/build-${_android_toolchain}"
export CXXFLAGS="$common_flags -fexceptions -frtti -std=c++14 $ld_flags"
export LDFLAGS="$target_flags $ld_flags"
mkdir -p "${srcdir}/${_name}-${pkgver}/build-${_android_toolchain}"
cd "${srcdir}/${_name}-${pkgver}/build-${_android_toolchain}"
../configure \ ../configure \
--host=$_android_toolchain \ --host=$_android_toolchain \
@ -91,8 +95,8 @@ build() {
} }
package() { package() {
mkdir -p "${srcdir}/${_name}-${pkgver}/build-${_android_toolchain}" mkdir -p "${srcdir}/${_pkgname}-${pkgver}/build-${_android_toolchain}"
cd "${srcdir}/${_name}-${pkgver}/build-${_android_toolchain}" cd "${srcdir}/${_pkgname}-${pkgver}/build-${_android_toolchain}"
cd src/cppunit cd src/cppunit
make DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" install

View File

@ -6,19 +6,24 @@
_pkgname=kirigami2 _pkgname=kirigami2
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkgname-$_android_arch
pkgver=5.47.0 pkgver=5.52.0
pkgrel=1 pkgrel=1
pkgdesc="A QtQuick based components set (Android, $_android_arch)" pkgdesc="A QtQuick based components set (Android, $_pkg_arch)"
arch=('any') arch=('any')
url='https://community.kde.org/Frameworks' url='https://community.kde.org/Frameworks'
license=(LGPL) license=(LGPL)
depends=( "android-qt5-$_android_arch") depends=("android-$_pkg_arch-qt5")
makedepends=('cmake' 'android-ndk' 'android-sdk' 'extra-cmake-modules') makedepends=('cmake' 'android-ndk' 'android-sdk' 'extra-cmake-modules')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
source=("https://download.kde.org/stable/frameworks/${pkgver%.*}/$_pkgname-$pkgver.tar.xz"{,.sig}) source=("https://download.kde.org/stable/frameworks/${pkgver%.*}/$_pkgname-$pkgver.tar.xz"{,.sig})
sha256sums=('ed2dd9e3a56f4728aca40c74ab02d48f9dda8d140b20328c5b29825f5683aad5' sha256sums=('375ec103d56a71ee3a5f43de1cfb4720fc33c125b2b2de545f9e563851c38c24'
'SKIP') 'SKIP')
validpgpkeys=('53E6B47B45CEA3E0D5B7457758D0EE648A48B3BB') # David Faure <faure@kde.org> validpgpkeys=('53E6B47B45CEA3E0D5B7457758D0EE648A48B3BB') # David Faure <faure@kde.org>
options=(!buildflags staticlibs !strip !emptydirs) options=(!buildflags staticlibs !strip !emptydirs)
@ -29,17 +34,16 @@ prepare() {
build() { build() {
cd build cd build
local qt_version=$(pacman -Q "android-qt5-$_android_arch" | sed 's/.* \(.*\)-.*/\1/')
cmake ../$_pkgname-$pkgver \ cmake ../$_pkgname-$pkgver \
-DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=21 \ -DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \ -DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_NDK=/opt/android-ndk \ -DCMAKE_ANDROID_NDK=/opt/android-ndk \
-DCMAKE_ANDROID_SDK=/opt/android-sdk \ -DCMAKE_ANDROID_SDK=/opt/android-sdk \
-DCMAKE_ANDROID_STL_TYPE=gnustl_shared \ -DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/android-libs/$_android_arch \ -DCMAKE_INSTALL_PREFIX="$_prefix" \
-DCMAKE_FIND_ROOT_PATH="/opt/android-ndk/sysroot;/opt/android-libs/$_android_arch;/opt/android-qt5/$qt_version/$_android_arch" \ -DCMAKE_FIND_ROOT_PATH="/opt/android-ndk/sysroot;$_prefix" \
-DBUILD_EXAMPLES=OFF \ -DBUILD_EXAMPLES=OFF \
-DBUILD_TESTING=OFF \ -DBUILD_TESTING=OFF \
-DBUILD_QCH=OFF -DBUILD_QCH=OFF

View File

@ -0,0 +1,90 @@
# Maintainer: Martchus <martchus@gmx.net>
# Contributor: Arthur Darcet <arthur.darcet at m4x.org>
# Contributor: Techlive Zheng <techlivezheng at gmail.com>
_pkgname=libiconv
_android_arch=arm64-v8a
_pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.15
pkgrel=1
pkgdesc="Provides libiconv.so and libcharset.so (Android $_pkg_arch)"
arch=('any')
url='http://www.gnu.org/software/libiconv/'
license=('LGPL')
makedepends=('android-ndk')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
source=("http://ftp.gnu.org/pub/gnu/${_pkgname}/${_pkgname}-${pkgver}.tar.gz")
md5sums=('ace8b5f2db42f7b3b3057585e80d9808')
options=(!libtool !buildflags staticlibs !strip !emptydirs)
build() {
cd $srcdir/${_pkgname}-${pkgver}
sed '/LD_RUN_PATH/d' -i Makefile.in
# configure paths
export ANDROID_NDK=/opt/android-ndk
export CROSS_COMPILE=$_android_toolchain
export ANDROID_PREFIX=${ANDROID_NDK}/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64
export ANDROID_SYSROOT=${ANDROID_NDK}/platforms/android-$_android_platform/arch-${_android_arch%-*}/usr
export CROSS_PATH=${ANDROID_PREFIX}/bin/$_android_toolchain
# configure tools
export CPP=${PWD}/cpp.sh
export AR=${CROSS_PATH}-ar
export AS=${CROSS_PATH}-as
export NM=${CROSS_PATH}-nm
export CC=${CROSS_PATH}-gcc
export CXX=${CROSS_PATH}-g++
export LD=${CROSS_PATH}-ld
export RANLIB=${CROSS_PATH}-ranlib
export STRIP=${CROSS_PATH}-strip
# configure flags
export CFLAGS="${CFLAGS} --gcc-toolchain=${ANDROID_PREFIX} --sysroot=${ANDROID_SYSROOT} -I${ANDROID_NDK}/sysroot/usr/include -I${ANDROID_NDK}/sysroot/usr/include/${CROSS_COMPILE} -I${ANDROID_SYSROOT}/usr/include -I${ANDROID_PREFIX}/include"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS} -L${ANDROID_SYSROOT}/usr/lib"
# setup preprocessor (because the NDK doesn't provide a wrapper like for gcc and g++)
printf "#!/bin/bash\nexec \"$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++\" -target $_android_toolchain -E \"\$@\"" > "$CPP"
chmod +x "$CPP"
./configure \
--host=$_android_toolchain \
--target=$_android_toolchain \
--build="$CHOST" \
--with-sysroot="$ANDROID_SYSROOT" \
--prefix="$_prefix" \
--libdir="$_prefix/lib" \
--includedir="$_prefix/include" \
--enable-shared=yes \
--enable-static=yes
# make sure the LDFLAGS are actually used (LDFLAGS are not passed otherwise)
local libtool_subst="s:\\\$CC -shared:\\\$CC -shared --gcc-toolchain=${ANDROID_PREFIX} --sysroot=${ANDROID_SYSROOT} $LDFLAGS:g"
sed -i "$libtool_subst" libtool
sed -i "$libtool_subst" libcharset/libtool
# build target lib/localcharset.h and directory lib to experience less brokenness
make lib/localcharset.h
cd lib
make
}
package() {
cd $srcdir/${_pkgname}-${pkgver}/lib
make DESTDIR="$pkgdir" LIBDIR="$_prefix/lib" install
cp libcharset.a "$pkgdir/$_prefix/lib/libcharset.a"
cp libcharset.so "$pkgdir/$_prefix/lib/libcharset.so"
cd ..
mkdir -p "$pkgdir/$_prefix"/include
mv include/iconv.h "$pkgdir/$_prefix"/include
cd libcharset
mv include/libcharset.h "$pkgdir/$_prefix"/include
mv include/localcharset.h "$pkgdir/$_prefix"/include
}

View File

@ -1,68 +0,0 @@
# Maintainer: Martchus <martchus@gmx.net>
# Contributor: Arthur Darcet <arthur.darcet at m4x.org>
# Contributor: Techlive Zheng <techlivezheng at gmail.com>
_pkgname=libiconv
_android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android
_prefix=/opt/android-libs/$_android_arch
pkgname=android-libiconv-$_android_arch
pkgver=1.15
pkgrel=1
pkgdesc="Provides libiconv.so and libcharset.so (Android $_android_arch)"
arch=('any')
url='http://www.gnu.org/software/libiconv/'
license=('LGPL')
makedepends=('android-ndk')
source=("http://ftp.gnu.org/pub/gnu/${_pkgname}/${_pkgname}-${pkgver}.tar.gz")
md5sums=('ace8b5f2db42f7b3b3057585e80d9808')
options=(!libtool !buildflags staticlibs !strip !emptydirs)
build() {
cd $srcdir/${_pkgname}-${pkgver}
sed '/LD_RUN_PATH/d' -i Makefile.in
export ANDROID_NDK=/opt/android-ndk
export CROSS_COMPILE=aarch64-linux-android
export ANDROID_PREFIX=${ANDROID_NDK}/toolchains/${CROSS_COMPILE}-4.9/prebuilt/linux-x86_64
export ANDROID_SYSROOT=${ANDROID_NDK}/platforms/android-21/arch-arm64
export CROSS_PATH=${ANDROID_PREFIX}/bin/${CROSS_COMPILE}
export CPP=${CROSS_PATH}-cpp
export AR=${CROSS_PATH}-ar
export AS=${CROSS_PATH}-as
export NM=${CROSS_PATH}-nm
export CC=${CROSS_PATH}-gcc
export CXX=${CROSS_PATH}-g++
export LD=${CROSS_PATH}-ld
export RANLIB=${CROSS_PATH}-ranlib
export STRIP=${CROSS_PATH}-strip
export CFLAGS="${CFLAGS} --sysroot=${ANDROID_SYSROOT} -I${ANDROID_NDK}/sysroot/usr/include -I${ANDROID_NDK}/sysroot/usr/include/${CROSS_COMPILE} -I${ANDROID_SYSROOT}/usr/include -I${ANDROID_PREFIX}/include"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS} -L${ANDROID_SYSROOT}/usr/lib -L${ANDROID_PREFIX}/lib"
./configure \
--host=$_android_toolchain \
--target=$_android_toolchain \
--build="$CHOST" \
--with-sysroot="$ANDROID_SYSROOT" \
--prefix="$_prefix" \
--libdir="$_prefix/lib" \
--includedir="$_prefix/include" \
--enable-shared=yes \
--enable-static=yes
make lib/localcharset.h
cd lib
make
}
package() {
cd $srcdir/${_pkgname}-${pkgver}/lib
make DESTDIR="$pkgdir" LIBDIR="$_prefix/lib" install
cd ..
mkdir -p "$pkgdir/$_prefix"/include
mv include/iconv.h "$pkgdir/$_prefix"/include
}

View File

@ -2,42 +2,54 @@
# Maintainer: Martchus <martchus@gmx.net> # Maintainer: Martchus <martchus@gmx.net>
# export Android configuration # export Android configuration
export ANDROID_MINIMUM_PLATFORM=21 # https://developer.android.com/about/dashboards/ export ANDROID_MINIMUM_PLATFORM=22 # https://developer.android.com/about/dashboards/
export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk}
export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk}
export ANDROID_EABI=aarch64-linux-android-4.9 export ANDROID_EABI=aarch64-linux-android-4.9
export ANDROID_ARCH=arch-arm64 export ANDROID_ARCH=arch-arm64
_android_arch=arm64-v8a _android_arch=arm64-v8a
_pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_android_platform_dir=android-$_android_platform/arch-arm64
_pkgname=openssl _pkgname=openssl
_ver=1.1.0h _ver=1.1.1a
_pref=/opt/android-libs/$_android_arch _pref=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
# use a pacman compatible version scheme # use a pacman compatible version scheme
pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
pkgrel=2 pkgrel=1
pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_android_arch)" pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)"
arch=('any') arch=('any')
url='https://www.openssl.org' url='https://www.openssl.org'
license=('custom:BSD') license=('custom:BSD')
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
depends=('android-sdk' 'android-ndk') depends=('android-sdk' 'android-ndk')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz" source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"
"https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc" "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc"
'setenv-android.sh') 'setenv-android.sh')
sha256sums=('5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517' sha256sums=('fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41'
'SKIP' 'SKIP'
'618eba24998f973487b9ebc556dd48d6828932f51f69ae75cb9da6c65c92b00a') '0938c8d68110768db4f350a7ec641070686904f2fe7ba630ac94399d7dc8cc5e')
validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491') validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491')
build() { build() {
cd "$srcdir/$_pkgname-$_ver" cd "$srcdir/$_pkgname-$_ver"
# don't use -mandroid flag (Clang as provided by the NDK does not like it)
sed -i -e 's/-mandroid//' Configurations/15-android.conf
source "$srcdir/setenv-android.sh" source "$srcdir/setenv-android.sh"
./Configure \ ./Configure \
--prefix="$_pref" \ --prefix="$_pref" \
--openssldir="$_pref" \ --openssldir="$_pref" \
--gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \
--sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \
-isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \ -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \
-isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \ -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \
-Wl,--no-allow-shlib-undefined \ -Wl,--no-allow-shlib-undefined \
@ -46,10 +58,11 @@ build() {
no-ui \ no-ui \
threads \ threads \
shared \ shared \
android android-${ANDROID_ARCH##arch-}
# ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason) # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason)
sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile
sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//g' Makefile
# get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient) # get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient)
sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c

View File

@ -0,0 +1,89 @@
# 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.
_reponame=passwordfile
_pkgname=passwordfile
_android_arch=arm64-v8a
_pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkg_arch-$_pkgname
pkgver=3.2.0
pkgrel=1
arch=('any')
pkgdesc="C++ library to read/write passwords from/to encrypted files using AES-256-CBC via OpenSSL (Android, $_pkg_arch)"
license=('GPL')
depends=("android-$_pkg_arch-c++utilities" "android-$_pkg_arch-openssl")
optdepends=("$_pkgname-doc: API documentation")
makedepends=('cmake' 'android-ndk' 'android-sdk')
checkdepends=("android-$_pkg_arch-cppunit")
# FIXME: run tests with qemu
#checkdepends+=('qemu-binfmt-arm' "android-$_pkg_arch-linker")
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
url="https://github.com/Martchus/${_reponame}"
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('48e95ad852dc83b598c428f9fd0e9717aa12e81aae8254c2946f380afee1b768')
options=(!buildflags staticlibs !strip !emptydirs)
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
local android_sdk_path=${ANDROID_SDK_ROOT:-/opt/android-sdk}
local android_ndk_path=${ANDROID_NDK_ROOT:-/opt/android-ndk}
local include_dir=$_prefix/include
cmake \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_SDK="$android_sdk_path" \
-DCMAKE_ANDROID_NDK="$android_ndk_path" \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$_prefix \
-DCMAKE_FIND_ROOT_PATH="$android_ndk_path/sysroot;$_prefix" \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath-link,$_prefix/lib" \
-Dcrypto_DYNAMIC_INCLUDE_DIR="$include_dir" \
-Dcrypto_STATIC_INCLUDE_DIR="$include_dir" \
-Dcrypto_DYNAMIC_LIB="$_prefix/lib/libcrypto.so" \
-Dcrypto_STATIC_LIB="$_prefix/lib/libcrypto.a" \
-DNO_DOXYGEN=ON
make VERBOSE=1
}
check() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
# can not run the tests so compile them at least
make tests VERBOSE=1
# FIXME: run tests with qemu
# * currently getting error
# "libc: Fatal signal 4 (SIGILL), code 2, fault addr 0x4000c28b40 in tid 193 (test), pid 193 (test)"
# * not possible because the default Linux kernel is not able to run Android libc?
# use dynamic linker supposed to be located under $prefix/system/bin/linker64
#export QEMU_LD_PREFIX=$prefix
# use libraries from build directory, prefix and Android NDK
#export LD_LIBRARY_PATH=$PWD:$prefix/lib:$android_ndk_path/sources/cxx-stl/llvm-libc++/libs/arm64-v8a:$android_ndk_path/platforms/android-28/arch-arm64/usr/lib
#make check VERBOSE=1
}
package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
make DESTDIR="${pkgdir}" install
# add tests to the package for possibly executing them later under Android
if [[ -f ${_pkgname}_tests ]]; then
mkdir "${pkgdir}/$_prefix/bin"
cp ${_pkgname}_tests "${pkgdir}/$_prefix/bin"
fi
}

View File

@ -1,64 +0,0 @@
# 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.
_reponame=passwordfile
_pkgname=passwordfile
_android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android
pkgname=android-$_pkgname-$_android_arch
pkgver=3.2.0
pkgrel=1
arch=('any')
pkgdesc="C++ library to read/write passwords from/to encrypted files using AES-256-CBC via OpenSSL (Android, $_android_arch)"
license=('GPL')
depends=("android-c++utilities-$_android_arch" "android-openssl-$_android_arch")
optdepends=("$_pkgname-doc: API documentation")
makedepends=('cmake' 'android-ndk' 'android-sdk')
#checkdepends=('cppunit')
url="https://github.com/Martchus/${_reponame}"
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('48e95ad852dc83b598c428f9fd0e9717aa12e81aae8254c2946f380afee1b768')
options=(!buildflags staticlibs !strip !emptydirs)
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
local android_sdk_path=${ANDROID_SDK_ROOT:-/opt/android-sdk}
local android_ndk_path=${ANDROID_NDK_ROOT:-/opt/android-ndk}
local prefix=/opt/android-libs/$_android_arch
local include_dir=$prefix/include
cmake \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=21 \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_SDK="$android_sdk_path" \
-DCMAKE_ANDROID_NDK="$android_ndk_path" \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DCMAKE_FIND_ROOT_PATH="$android_ndk_path/sysroot;$prefix" \
-Dcrypto_DYNAMIC_INCLUDE_DIR="$include_dir" \
-Dcrypto_STATIC_INCLUDE_DIR="$include_dir" \
-Dcrypto_DYNAMIC_LIB="$prefix/lib/libcrypto.so" \
-Dcrypto_STATIC_LIB="$prefix/lib/libcrypto.a" \
-DNO_DOXYGEN=ON
make VERBOSE=1
}
#check() {
# cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
# make check
#}
package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
make DESTDIR="${pkgdir}" install
}

View File

@ -6,19 +6,21 @@
_reponame=passwordmanager _reponame=passwordmanager
_pkgname=passwordmanager _pkgname=passwordmanager
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _pkg_arch=aarch64
_android_api_level=21 _android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
pkgver=3.2.0 pkgver=3.2.0
pkgrel=1 pkgrel=1
arch=('any') arch=('any')
pkgdesc="A simple password store using AES-256-CBC encryption via OpenSSL (Android, $_android_arch)" pkgdesc="A simple password store using AES-256-CBC encryption via OpenSSL (Android, $_pkg_arch)"
license=('GPL') license=('GPL')
depends=("android-passwordfile-$_android_arch" "android-qtutilities-$_android_arch" "android-kirigami2-$_android_arch") depends=("android-$_pkg_arch-passwordfile" "android-$_pkg_arch-qtutilities" "android-$_pkg_arch-kirigami2")
optdepends=("$_pkgname-doc: API documentation")
makedepends=('cmake' 'android-ndk' 'android-sdk' 'extra-cmake-modules' 'jdk8-openjdk') makedepends=('cmake' 'android-ndk' 'android-sdk' 'extra-cmake-modules' 'jdk8-openjdk')
#checkdepends=('cppunit') conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('418a3ca93d4c4a614e55b7f22ddfc7fcc765eacc571dd69ce3086f8441a9d59d') sha256sums=('418a3ca93d4c4a614e55b7f22ddfc7fcc765eacc571dd69ce3086f8441a9d59d')
@ -33,10 +35,8 @@ build() {
local android_sdk_path=${ANDROID_SDK_ROOT:-/opt/android-sdk} local android_sdk_path=${ANDROID_SDK_ROOT:-/opt/android-sdk}
local android_ndk_path=${ANDROID_NDK_ROOT:-/opt/android-ndk} local android_ndk_path=${ANDROID_NDK_ROOT:-/opt/android-ndk}
local qt_version=$(pacman -Q "android-qt5-$_android_arch" | sed 's/.* \(.*\)-.*/\1/')
local build_tools_version=$(pacman -Q android-sdk-build-tools | sed 's/.* r\(.*\)-.*/\1/') local build_tools_version=$(pacman -Q android-sdk-build-tools | sed 's/.* r\(.*\)-.*/\1/')
local qt_root=/opt/android-qt5/$qt_version/$_android_arch local root="$android_ndk_root/sysroot;$_prefix"
local root="$android_ndk_root/sysroot;/opt/android-libs/$_android_arch;$qt_root"
mkdir home mkdir home
export HOME=$PWD/home export HOME=$PWD/home
@ -47,28 +47,28 @@ build() {
cmake \ cmake \
-DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/Android.cmake \ -DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/Android.cmake \
-DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=$_android_api_level \ -DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \ -DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_SDK="$android_sdk_path" \ -DCMAKE_ANDROID_SDK="$android_sdk_path" \
-DCMAKE_ANDROID_NDK="$android_ndk_path" \ -DCMAKE_ANDROID_NDK="$android_ndk_path" \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ -DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/android-libs/$_android_arch \ -DCMAKE_INSTALL_PREFIX=$_prefix \
-DCMAKE_PREFIX_PATH="$root" \ -DCMAKE_PREFIX_PATH="$root" \
-DCMAKE_FIND_ROOT_PATH="$root" \ -DCMAKE_FIND_ROOT_PATH="$root" \
-DNO_DOXYGEN=ON \ -DNO_DOXYGEN=ON \
-DWIDGETS_GUI=OFF \ -DWIDGETS_GUI=OFF \
-DQUICK_GUI=ON \ -DQUICK_GUI=ON \
-DQt5Core_DIR="$qt_root/lib/cmake/Qt5Core" \ -DQt5Core_DIR="$_prefix/lib/cmake/Qt5Core" \
-DANDROID_API_LEVEL=$_android_api_level \ -DANDROID_API_LEVEL=$_android_platform \
-DANDROID_ABI=$_android_arch \ -DANDROID_ABI=$_android_arch \
-DANDROID_ARCHITECTURE=${_android_arch%-*} \ -DANDROID_ARCHITECTURE=${_android_arch%-*} \
-DANDROID_SDK_ROOT="$android_sdk_root" \ -DANDROID_SDK_ROOT="$android_sdk_root" \
-DANDROID_SDK_BUILD_TOOLS_REVISION="$build_tools_version" \ -DANDROID_SDK_BUILD_TOOLS_REVISION="$build_tools_version" \
-DECM_ADDITIONAL_FIND_ROOT_PATH="$root;$android_ndk_root/platforms/android-$_android_api_level/arch-${_android_arch%-*};$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/libs/$_android_arch" \ -DECM_ADDITIONAL_FIND_ROOT_PATH="$root;$android_ndk_root/platforms/android-$_android_platform/arch-${_android_arch%-*};$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/libs/$_android_arch" \
-DQTANDROID_EXPORTED_TARGET=$_pkgname \ -DQTANDROID_EXPORTED_TARGET=$_pkgname \
-DANDROID_APK_DIR=android \ -DANDROID_APK_DIR=android \
-DANDROID_EXTRA_LIBS=/opt/android-libs/arm64-v8a/lib/libcrypto.so;/opt/android-libs/arm64-v8a/lib/libssl.so;/opt/android-libs/arm64-v8a/lib/libiconv.so;/opt/android-libs/arm64-v8a/lib/libKF5Kirigami2.so -DANDROID_EXTRA_LIBS="$_prefix/lib/libcrypto.so;$_prefix/lib/libssl.so;$_prefix/lib/libiconv.so;$_prefix/lib/libKF5Kirigami2.so"
#-DCMAKE_EXE_LINKER_FLAGS="-fPIE;-pie;-Wl,--gc-sections;-Wl,-rpath-link=/opt/android-libs/$_android_arch/lib;/opt/android-qt5/$qt_version/$_android_arch/lib:/opt/android-libs/$_android_arch/lib" \ #-DCMAKE_EXE_LINKER_FLAGS="-fPIE;-pie;-Wl,--gc-sections;-Wl,-rpath-link=/opt/android-libs/$_android_arch/lib;/opt/android-qt5/$qt_version/$_android_arch/lib:/opt/android-libs/$_android_arch/lib" \
@ -76,11 +76,6 @@ build() {
make DESTDIR="${pkgdir}" create-apk make DESTDIR="${pkgdir}" create-apk
} }
#check() {
# cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
# make check
#}
package() { package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"

View File

@ -1,5 +1,5 @@
# PKGCONFIG for android-qt5 # PKGCONFIG for android-qt5
# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com> # Maintainer in the AUR: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
# Contributor: Jiaxi Hu <sftrytry _AT_ gmail _DOT_ com> # Contributor: Jiaxi Hu <sftrytry _AT_ gmail _DOT_ com>
# Contributor: jimmy00784 <jimmy00784@gmail.com> # Contributor: jimmy00784 <jimmy00784@gmail.com>
# Contributor: Ricardo (XenGi) Band <email@ricardo.band> # Contributor: Ricardo (XenGi) Band <email@ricardo.band>
@ -8,23 +8,18 @@
# Useful link to keep track of latest API changes: # Useful link to keep track of latest API changes:
# https://developer.android.com/ndk/downloads/revision_history # https://developer.android.com/ndk/downloads/revision_history
android_arch=arm64-v8a _android_arch=arm64-v8a
_pkg_arch=aarch64
# Minimum Android platform based on: # Minimum Android platform based on:
# https://developer.android.com/about/dashboards/ # https://developer.android.com/about/dashboards/
export ANDROID_MINIMUM_PLATFORM=${ANDROID_MINIMUM_PLATFORM:-21} export ANDROID_MINIMUM_PLATFORM=${ANDROID_MINIMUM_PLATFORM:-22}
export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk} export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk}
export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk}
export OPENSSL_PREFIX=${OPENSSL_PREFIX:-/opt/android-libs/${android_arch}}
# skip building mapboxgl as it increases compile time significantly and _pkgname=
# likely not a lot of people actually using it; if you need it, just remove the pkgname=android-$_pkg_arch-qt5
# following line:
_mapboxcfg='QT.global.disabled_features+=geoservices_mapboxgl'
_pkgname=android-qt5
pkgname=${_pkgname}-${android_arch}
pkgver=5.11.2 pkgver=5.11.2
pkgrel=1 pkgrel=1
pkgdesc="Qt 5 for Android" pkgdesc="Qt 5 for Android"
@ -40,7 +35,7 @@ makedepends=('libgl'
'gperf' 'gperf'
'libxslt' 'libxslt'
'fontconfig' 'fontconfig'
'android-openssl-'$android_arch) "android-$_pkg_arch-openssl")
depends=('java-runtime-headless>=7' depends=('java-runtime-headless>=7'
'apache-ant' 'apache-ant'
'android-ndk' 'android-ndk'
@ -49,9 +44,30 @@ depends=('java-runtime-headless>=7'
'android-sdk-build-tools' 'android-sdk-build-tools'
'android-sdk-platform-tools') 'android-sdk-platform-tools')
groups=('android-qt5') groups=('android-qt5')
optdepends=("android-openssl-${android_arch}: OpenSSL support" conflicts=("android-${_android_arch}-qt5")
"android-google-apis-${android_arch}: AVD support" replaces=("android-${_android_arch}-qt5")
"android-system-image-${android_arch}: AVD support")
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' options=('!strip'
'!buildflags' '!buildflags'
@ -59,14 +75,23 @@ options=('!strip'
'!emptydirs') '!emptydirs')
_pkgfqn="qt-everywhere-src-${pkgver}" _pkgfqn="qt-everywhere-src-${pkgver}"
source=("http://download.qt-project.org/official_releases/qt/${pkgver:0:4}/${pkgver}/single/${_pkgfqn}.tar.xz" source=("http://download.qt-project.org/official_releases/qt/${pkgver:0:4}/${pkgver}/single/${_pkgfqn}.tar.xz"
'0001-Fix-clang-build.patch') '0001-Fix-clang-build.patch'
sha256sums=('c6f0854d7de7bde80cfd8cc85bb7152b' '0002-Disable-mapbox.patch')
'todo') sha256sums=('c6104b840b6caee596fa9a35bc5f57f67ed5a99d6a36497b6fe66f990a53ca81'
'cd3b76a87ab6b2237529da353ef5eb4946bc562df9eaf265f8281d69ab2fee88'
'1156ae8ee34dd34985ede19ca841a6ec6644ba299e4a0d35c26cbb5a1a9ad0cf')
_pref=/opt/android-libs/$_pkg_arch
prepare() { prepare() {
cd ${_pkgfqn} cd ${_pkgfqn}
patch -Np1 -i "../0001-Fix-clang-build.patch" patch -Np1 -i "../0001-Fix-clang-build.patch"
# 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 "../0002-Disable-mapbox.patch"
} }
get_last() { get_last() {
@ -83,14 +108,15 @@ build() {
export ANDROID_NDK_PLATFORM=${ANDROID_NDK_PLATFORM:-android-$ANDROID_MINIMUM_PLATFORM} export ANDROID_NDK_PLATFORM=${ANDROID_NDK_PLATFORM:-android-$ANDROID_MINIMUM_PLATFORM}
export PYTHON=/usr/bin/python2 export PYTHON=/usr/bin/python2
local prefix=/opt/${_pkgname}/${pkgver}/${android_arch}
configue_opts=" configue_opts="
-confirm-license -confirm-license
-opensource -opensource
-silent -silent
-prefix ${prefix} -prefix ${_pref}
-docdir ${prefix}/doc -archdatadir ${_pref}/lib/qt
-datadir ${_pref}/share/qt
-examplesdir ${_pref}/share/qt/examples
-testsdir ${_pref}/share/qt/tests
-xplatform android-clang -xplatform android-clang
-nomake tests -nomake tests
-nomake examples -nomake examples
@ -104,13 +130,16 @@ build() {
-qt-zlib -qt-zlib
-qt-freetype -qt-freetype
-openssl-runtime -openssl-runtime
-android-arch ${android_arch} -android-arch ${_android_arch}
-android-ndk-platform ${ANDROID_NDK_PLATFORM} -android-ndk-platform ${ANDROID_NDK_PLATFORM}
-I${OPENSSL_PREFIX}/include -I/opt/android-libs/$_pkg_arch/include"
${_mapboxcfg}"
[[ $ANDROID_DEBUG_BUILD ]] \
&& configue_opts+=' -debug-and-release' \
|| configue_opts+=' -release'
# add architecture specific options # add architecture specific options
case "$android_arch" in case "$_pkg_arch" in
x86*) x86*)
configue_opts+=" configue_opts+="
-no-sql-mysql -no-sql-mysql
@ -130,12 +159,12 @@ package() {
make INSTALL_ROOT=${pkgdir} install make INSTALL_ROOT=${pkgdir} install
case "$android_arch" in case "$_pkg_arch" in
arm64-v8a) aarch64)
toolchain=aarch64-linux-android-4.9 toolchain=aarch64-linux-android-4.9
stripFolder=aarch64-linux-android stripFolder=aarch64-linux-android
;; ;;
armeabi-v7a) armv7a-eabi)
toolchain=arm-linux-androideabi-4.9 toolchain=arm-linux-androideabi-4.9
stripFolder=arm-linux-androideabi stripFolder=arm-linux-androideabi
;; ;;
@ -143,16 +172,17 @@ package() {
toolchain=x86-4.9 toolchain=x86-4.9
stripFolder=i686-linux-android stripFolder=i686-linux-android
;; ;;
x86_64) x86-64)
toolchain=x86_64-4.9 toolchain=x86_64-4.9
stripFolder=x86_64-linux-android stripFolder=x86_64-linux-android
;; ;;
esac esac
local STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip local STRIP=${ANDROID_NDK_ROOT}/toolchains/${toolchain}/prebuilt/linux-x86_64/${stripFolder}/bin/strip
find ${pkgdir}/opt/${_pkgname}/${pkgver}/${android_arch}/lib -name 'lib*.so' -exec ${STRIP} {} \; find ${pkgdir}/${_pref}/bin ! -name '*.pl' -exec ${STRIP} {} \;
find ${pkgdir}/opt/${_pkgname}/${pkgver}/${android_arch}/lib \( -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${STRIP} {} \; find ${pkgdir}/${_pref}/lib -name 'lib*.so' -exec ${STRIP} {} \;
find ${pkgdir}/opt/${_pkgname}/${pkgver}/${android_arch}/plugins -name 'lib*.so' -exec ${STRIP} {} \; find ${pkgdir}/${_pref}/lib \( -name 'lib*.a' ! -name 'libQt5Bootstrap.a' ! -name 'libQt5QmlDevTools.a' \) -exec ${STRIP} {} \;
find ${pkgdir}/${_pref}/lib/qt/plugins -name 'lib*.so' -exec ${STRIP} {} \;
# drop QMAKE_PRL_BUILD_DIR because reference the build dir # drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "${pkgdir}/" -type f -name '*.prl' \ find "${pkgdir}/" -type f -name '*.prl' \

View File

@ -6,18 +6,22 @@
_reponame=qtutilities _reponame=qtutilities
_pkgname=qtutilities _pkgname=qtutilities
_android_arch=arm64-v8a _android_arch=arm64-v8a
_android_toolchain=aarch64-linux-android _pkg_arch=aarch64
_android_toolchain=$_pkg_arch-linux-android
_android_platform=22
_prefix=/opt/android-libs/$_pkg_arch
pkgname=android-$_pkgname-$_android_arch pkgname=android-$_pkg_arch-$_pkgname
pkgver=5.12.0 pkgver=5.12.0
pkgrel=1 pkgrel=1
arch=('any') arch=('any')
pkgdesc="Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models (Android, $_android_arch)" pkgdesc="Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models (Android, $_pkg_arch)"
license=('GPL') license=('GPL')
depends=("android-c++utilities-$_android_arch" "android-qt5-$_android_arch") depends=("android-$_pkg_arch-c++utilities" "android-$_pkg_arch-qt5")
optdepends=("$_pkgname-doc: API documentation") optdepends=("$_pkgname-doc: API documentation")
makedepends=('cmake' 'android-ndk' 'android-sdk') makedepends=('cmake' 'android-ndk' 'android-sdk')
#checkdepends=('cppunit') conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('ded9aa4b40076aa5eb2d09c87207cebd218e42c4199a21bc2530fefb882e1408') sha256sums=('ded9aa4b40076aa5eb2d09c87207cebd218e42c4199a21bc2530fefb882e1408')
@ -29,28 +33,22 @@ prepare() {
build() { build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
local qt_version=$(pacman -Q "android-qt5-$_android_arch" | sed 's/.* \(.*\)-.*/\1/')
cmake \ cmake \
-DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=21 \ -DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \ -DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_NDK=/opt/android-ndk \ -DCMAKE_ANDROID_NDK=/opt/android-ndk \
-DCMAKE_ANDROID_SDK=/opt/android-sdk \ -DCMAKE_ANDROID_SDK=/opt/android-sdk \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \ -DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/android-libs/$_android_arch \ -DCMAKE_INSTALL_PREFIX="$_prefix" \
-DCMAKE_FIND_ROOT_PATH="/opt/android-ndk/sysroot;/opt/android-libs/$_android_arch;/opt/android-qt5/$qt_version/$_android_arch" \ -DCMAKE_FIND_ROOT_PATH="/opt/android-ndk/sysroot;$_prefix" \
-DNO_DOXYGEN=ON \ -DNO_DOXYGEN=ON \
-DWIDGETS_GUI=OFF \ -DWIDGETS_GUI=OFF \
-DQUICK_GUI=ON -DQUICK_GUI=ON
make VERBOSE=1 make VERBOSE=1
} }
#check() {
# cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
# make check
#}
package() { package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
make DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" install

View File

@ -2,18 +2,20 @@
_android_api_level=24 _android_api_level=24
_rev=r07 _rev=r07
_pkg_arch=aarch64
_android_arch=arm64-v8a _android_arch=arm64-v8a
pkgname=android-system-image-${_android_arch} pkgname=android-$_pkg_arch-system-image
pkgver=${_android_api_level}_${_rev} pkgver=${_android_api_level}_${_rev}
pkgrel=1 pkgrel=1
pkgdesc="Android system image (${_android_arch}, latest API)" pkgdesc="Android system image (${_pkg_arch}, latest API)"
arch=('any') arch=('any')
url='http://developer.android.com/sdk/index.html' url='http://developer.android.com/sdk/index.html'
license=('custom') license=('custom')
depends=("android-platform") depends=("android-platform")
provides=("${pkgname}-${_android_api_level}") provides=("${pkgname}-${_android_api_level}" "android-system-image-${_android_arch}")
conflicts=("${pkgname}-${_android_api_level}") conflicts=("${pkgname}-${_android_api_level}" "android-system-image-${_android_arch}")
replaces=("android-system-image-${_android_arch}")
options=('!strip') options=('!strip')
source=("http://dl-ssl.google.com/android/repository/sys-img/android/${_android_arch}-${_android_api_level}_${_rev}.zip" source=("http://dl-ssl.google.com/android/repository/sys-img/android/${_android_arch}-${_android_api_level}_${_rev}.zip"
"source.properties") "source.properties")