From 32dfff233f581b61dac903a0bdf419f0d13377cf Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 5 Jan 2021 01:22:16 +0100 Subject: [PATCH] Import android-cmake from AUR * For future adjustments to ease building and using Qt 6 --- cmake/android/PKGBUILD | 42 +++++++++++++++++++++++++++++++ cmake/android/android-cmake-py.sh | 9 +++++++ cmake/android/android-cmake.sh | 33 ++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 cmake/android/PKGBUILD create mode 100644 cmake/android/android-cmake-py.sh create mode 100644 cmake/android/android-cmake.sh diff --git a/cmake/android/PKGBUILD b/cmake/android/PKGBUILD new file mode 100644 index 00000000..45b0b7e0 --- /dev/null +++ b/cmake/android/PKGBUILD @@ -0,0 +1,42 @@ +# Maintainer: Gonzalo Exequiel Pedone + +pkgname=android-cmake +pkgver=1 +pkgrel=1 +arch=('any') +pkgdesc="CMake wrapper for Android (android)" +depends=('cmake' 'android-environment' 'android-pkg-config') +license=("custom") +url="https://cmake.org/" +source=("android-cmake.sh" + "android-cmake-py.sh") +sha256sums=('SKIP' + 'SKIP') +_architectures="aarch64 armv7a-eabi x86 x86-64" +_python_versions="27 35 36 37" + +build() { + for _arch in ${_architectures}; do + source android-env ${_arch} + processor=$(basename ${ANDROID_CC}) + processor="${processor%%-*}" + sed "s|@TRIPLE@|${_arch}|g" android-cmake.sh > android-${_arch}-cmake + + for _pyver in ${_python_versions}; do + sed "s|@TRIPLE@|${_arch}|g;s|@PYMAJMIN@|${_pyver}|g" android-cmake-py.sh > android-${_arch}-cmake-py${_pyver} + done + done +} + +package() { + install -d "${pkgdir}"/usr/bin + + for _arch in ${_architectures}; do + source android-env ${_arch} + install -m 755 android-${_arch}-cmake "${pkgdir}"/usr/bin/ + + for _pyver in ${_python_versions}; do + install -m 755 android-${_arch}-cmake-py${_pyver} "${pkgdir}"/usr/bin/ + done + done +} diff --git a/cmake/android/android-cmake-py.sh b/cmake/android/android-cmake-py.sh new file mode 100644 index 00000000..b151d9e4 --- /dev/null +++ b/cmake/android/android-cmake-py.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +source android-env @TRIPLE@ + +android-@TRIPLE@-cmake \ + -DPYTHON_INCLUDE_DIR=${ANDROID_PREFIX_INCLUDE}/python@PYMAJMIN@ \ + -DPYTHON_LIBRARY=${ANDROID_PREFIX_LIB}/libpython@PYMAJMIN@.a \ + -DPYTHON_EXECUTABLE=/usr/bin/android-@TRIPLE@-python@PYMAJMIN@-bin \ + "$@" diff --git a/cmake/android/android-cmake.sh b/cmake/android/android-cmake.sh new file mode 100644 index 00000000..4f67c245 --- /dev/null +++ b/cmake/android/android-cmake.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +source android-env @TRIPLE@ + +default_android_pp_flags="-D_FORTIFY_SOURCE=2" +default_android_compiler_flags="$default_android_pp_flags -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4" +default_android_linker_flags="-Wl,-O1,--sort-common,--as-needed" + +export CPPFLAGS="${ANDROID_CPPFLAGS:-$default_android_pp_flags $CPPFLAGS}" +export CFLAGS="${ANDROID_CFLAGS:-$default_android_compiler_flags $CFLAGS}" +export CXXFLAGS="${ANDROID_CXXFLAGS:-$default_android_compiler_flags $CXXFLAGS}" +export LDFLAGS="${ANDROID_LDFLAGS:-$default_android_linker_flags $LDFLAGS}" + +PATH=${ANDROID_PREFIX_BIN}:$PATH cmake \ + -DCMAKE_INSTALL_PREFIX:PATH=${ANDROID_PREFIX} \ + -DCMAKE_INSTALL_LIBDIR:PATH=lib \ + -DINCLUDE_INSTALL_DIR:PATH=${ANDROID_PREFIX_INCLUDE} \ + -DLIB_INSTALL_DIR:PATH=${ANDROID_PREFIX_LIB} \ + -DSYSCONF_INSTALL_DIR:PATH=${ANDROID_PREFIX_ETC} \ + -DSHARE_INSTALL_DIR:PATH=${ANDROID_PREFIX_SHARE} \ + -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${ANDROID_PREFIX_INCLUDE} \ + -DCMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${ANDROID_PREFIX_INCLUDE} \ + -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DANDROID_ABI=${ANDROID_ABI} \ + -DANDROID_NDK=${ANDROID_NDK_HOME} \ + -DANDROID_NATIVE_API_LEVEL=${ANDROID_MINIMUM_PLATFORM} \ + -DANDROID_TOOLCHAIN=clang \ + -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \ + -DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \ + -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$LDFLAGS" \ + "$@"