diff options
author | Gonzalo Exequiel Pedone | 2024-04-13 13:15:21 -0300 |
---|---|---|
committer | Gonzalo Exequiel Pedone | 2024-04-13 13:15:21 -0300 |
commit | c895af84a3b746ed068e80c7ad3e14d7a57c1f7d (patch) | |
tree | 7f72025c48c2d3c0d2100c0e90233d42578c5188 | |
download | aur-c895af84a3b746ed068e80c7ad3e14d7a57c1f7d.tar.gz |
New package.
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 19 | ||||
-rw-r--r-- | android-rust-env.sh | 67 |
4 files changed, 105 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..eb4d4d03ddf4 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,14 @@ +pkgbase = android-rust + pkgdesc = Script providing common environment variables and functions for Rust build on Android. + pkgver = 1 + pkgrel = 1 + url = https://aur.archlinux.org/packages/android-rust + arch = any + license = MIT + depends = android-environment + depends = cargo-c + depends = rustup + source = android-rust-env.sh + md5sums = 5c46880c932383df93abb6a0520ea3e2 + +pkgname = android-rust diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..4c7721af876e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +pkg +src +*.xz +*.zst +*.asc diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ad12e86e233d --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,19 @@ +# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com> + +pkgname=android-rust +pkgver=1 +pkgrel=1 +arch=('any') +pkgdesc="Script providing common environment variables and functions for Rust build on Android." +url='https://aur.archlinux.org/packages/android-rust' +license=('MIT') +depends=('android-environment' + 'cargo-c' + 'rustup') +source=('android-rust-env.sh') +md5sums=('5c46880c932383df93abb6a0520ea3e2') + +package() { + install -d ${pkgdir}/usr/bin + install -m755 android-rust-env.sh ${pkgdir}/usr/bin/android-rust-env +} diff --git a/android-rust-env.sh b/android-rust-env.sh new file mode 100644 index 000000000000..d3be8c4bb4d5 --- /dev/null +++ b/android-rust-env.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +# Useful link to keep track of latest API changes: +# +# https://developer.android.com/ndk/downloads/revision_history + +_android_arch=$1 + +source android-env "${_android_arch}" + +if [ -z "${_android_arch}" ]; then + _android_arch=armv7a-eabi +fi + +if [ -z "${RUST_CHANNEL}" ]; then + export RUST_CHANNEL=nightly +fi + +case "${_android_arch}" in + aarch64) + export CARGO_BUILD_TARGET=aarch64-linux-android + ;; + armv7a-eabi) + export CARGO_BUILD_TARGET=armv7-linux-androideabi + ;; + x86) + export CARGO_BUILD_TARGET=i686-linux-android + ;; + x86-64) + export CARGO_BUILD_TARGET=x86_64-linux-android + ;; + *) + export CARGO_BUILD_TARGET=${_android_arch}-linux-android + ;; +esac + +export CARGO_HOME="${HOME}/.android-cargo/${_android_arch}/${ANDROID_NDK_PLATFORM}" + +android_rust_prepare() { + rustup target add "${CARGO_BUILD_TARGET}" + rustup default "${RUST_CHANNEL}" && rustup update + + mkdir -p "${CARGO_HOME}" + cat << EOF > "${CARGO_HOME}/config.toml" +[target.${CARGO_BUILD_TARGET}] +ar = "${ANDROID_AR}" +linker = "${ANDROID_CC}" +EOF +} + +android_cargo_cbuild() { + cargo cbuild \ + --target "${CARGO_BUILD_TARGET}" \ + --prefix="${ANDROID_PREFIX}" \ + --release \ + --frozen \ + $@ +} + +android_cargo_cinstall() { + cargo cinstall \ + --target "$CARGO_BUILD_TARGET" \ + --prefix="${ANDROID_PREFIX}" \ + --release \ + --frozen \ + $@ +} |