Skip to content

Instantly share code, notes, and snippets.

@leandrodaher
Forked from pgp/BuildRustAppForAndroid.sh
Created March 1, 2024 14:54
Show Gist options
  • Save leandrodaher/47ee6e3dc34c63d5f9dacd6b52c9300d to your computer and use it in GitHub Desktop.
Save leandrodaher/47ee6e3dc34c63d5f9dacd6b52c9300d to your computer and use it in GitHub Desktop.
Cross compile RUST application for Android (uses standalone toolchains, NDK >= 19 required)
# arm
export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
export CC=armv7a-linux-androideabi19-clang
export CXX=armv7a-linux-androideabi19-clang++
~/.cargo/bin/cargo build --target armv7-linux-androideabi
# aarch64
export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
export CC=aarch64-linux-android21-clang
export CXX=aarch64-linux-android21-clang++
~/.cargo/bin/cargo build --target aarch64-linux-android
# x86
export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
export CC=i686-linux-android19-clang
export CXX=i686-linux-android19-clang++
~/.cargo/bin/cargo build --target i686-linux-android
# x86_64
export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
export CC=x86_64-linux-android21-clang
export CXX=x86_64-linux-android21-clang
~/.cargo/bin/cargo build --target x86_64-linux-android
##################################################################
# All ABIs
cargo clean
export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
export CC=armv7a-linux-androideabi19-clang
export CXX=armv7a-linux-androideabi19-clang++
~/.cargo/bin/cargo build --target armv7-linux-androideabi
export CC=aarch64-linux-android21-clang
export CXX=aarch64-linux-android21-clang++
~/.cargo/bin/cargo build --target aarch64-linux-android
export CC=i686-linux-android19-clang
export CXX=i686-linux-android19-clang++
~/.cargo/bin/cargo build --target i686-linux-android
export CC=x86_64-linux-android21-clang
export CXX=x86_64-linux-android21-clang
~/.cargo/bin/cargo build --target x86_64-linux-android
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment