Skip to content

Instantly share code, notes, and snippets.

@pgp
Created April 11, 2019 08:36
Show Gist options
  • Save pgp/f4c3bbf67821bd131812a8658f016fbc to your computer and use it in GitHub Desktop.
Save pgp/f4c3bbf67821bd131812a8658f016fbc 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