PKGBUILDs/passwordmanager/android-aarch64/PKGBUILD

101 lines
3.6 KiB
Bash

# 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=passwordmanager
_pkgname=passwordmanager
_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=4.1.0
pkgrel=1
arch=('any')
pkgdesc="A simple password store using AES-256-CBC encryption via OpenSSL (Android, $_pkg_arch)"
license=('GPL')
depends=()
makedepends=("android-$_pkg_arch-passwordfile" "android-$_pkg_arch-qtutilities" "android-$_pkg_arch-kirigami2"
'cmake' 'android-ndk' 'android-sdk' 'android-platform' 'jdk8-openjdk' 'breeze-icons')
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=('845e119ec24d073411c52b797c8b7a4e44fbce4c793aaf90a11a21f070fcd3fa')
options=(!buildflags staticlibs !strip !emptydirs)
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
# locate keystore
local keystore_dir=${ANDROID_APK_KEYSTORE_DIR}
local keystore_alias=${ANDROID_APK_KEYSTORE_ALIAS}
local keystore_url=$keystore_dir/$keystore_alias
local keystore_password=${ANDROID_APK_KEYSTORE_PASSWORD}
if [[ ! -d $keystore_dir ]]; then
msg2 "The specified ANDROID_APK_KEYSTORE_DIR \"$keystore_dir\" is not a directory."
fi
if [[ -z $keystore_alias ]]; then
msg2 "The specified ANDROID_APK_KEYSTORE_ALIAS is empty."
fi
if [[ -z $keystore_password ]]; then
msg2 "The specified ANDROID_APK_KEYSTORE_PASSWORD is empty."
fi
# locate SDK, NDK and further libraries
local android_sdk_root=${ANDROID_SDK_ROOT:-/opt/android-sdk}
local android_ndk_root=${ANDROID_NDK_ROOT:-/opt/android-ndk}
local build_tools_version=$(pacman -Q android-sdk-build-tools | sed 's/.* r\(.*\)-.*/\1/')
local other_libs_root=/opt/android-libs/$_pkg_arch
local other_libs_include=$other_libs_root/include
local root="$android_ndk_root/sysroot;$other_libs_root"
# use Java 8 which seems to be the latest version which works
export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH
mkdir -p build
cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=$_android_platform \
-DCMAKE_ANDROID_ARCH_ABI=$_android_arch \
-DCMAKE_ANDROID_NDK="$android_ndk_root" \
-DCMAKE_ANDROID_SDK="$android_sdk_root" \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_INSTALL_PREFIX=$other_libs_root \
-DCMAKE_PREFIX_PATH="$root" \
-DCMAKE_FIND_ROOT_PATH="$root;$root/libs" \
-DCLANG_FORMAT_ENABLED=ON \
-DUSE_NATIVE_FILE_BUFFER=ON \
-DNO_DOXYGEN=ON \
-DWIDGETS_GUI=OFF \
-DQUICK_GUI=ON \
-DBUILTIN_ICON_THEMES=breeze \
-DBUILTIN_TRANSLATIONS=ON \
-DANDROID_APK_KEYSTORE_URL="$keystore_url" \
-DANDROID_APK_KEYSTORE_ALIAS="$keystore_alias" \
-DANDROID_APK_KEYSTORE_PASSWORD="$keystore_password" \
-DANDROID_APK_CXX_STANDARD_LIBRARY="$android_ndk_root/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so" \
..
make VERBOSE=1
make DESTDIR="${pkgdir}" passwordmanager_apk
}
package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
local apk_dir=${pkgdir}/$_prefix/apk/$_pkgname
mkdir -p "$apk_dir"
find build/apk -iname '*.apk' -exec cp --target-directory="$apk_dir" {} \;
}