summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone2024-04-13 13:15:21 -0300
committerGonzalo Exequiel Pedone2024-04-13 13:15:21 -0300
commitc895af84a3b746ed068e80c7ad3e14d7a57c1f7d (patch)
tree7f72025c48c2d3c0d2100c0e90233d42578c5188
downloadaur-c895af84a3b746ed068e80c7ad3e14d7a57c1f7d.tar.gz
New package.
-rw-r--r--.SRCINFO14
-rw-r--r--.gitignore5
-rw-r--r--PKGBUILD19
-rw-r--r--android-rust-env.sh67
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 \
+ $@
+}