
1 changed files with 72 additions and 0 deletions
@ -0,0 +1,72 @@ |
|||
# Build pEpJNIAdapter for Android |
|||
|
|||
** Asuming machine is already set up to build pEp Engine and Sequoia! ** |
|||
## Install dependencies |
|||
|
|||
```bash |
|||
sudo port -N install gsed wget autoconf automake libtool md5sha1sum openjdk8 |
|||
|
|||
## optionaly (not needed if using Android Studio) |
|||
sudo port -N install gradle |
|||
|
|||
``` |
|||
|
|||
## Install NDK |
|||
It can be done with the SDK and the sdkmanager cli tool, or using Android Studio. |
|||
|
|||
Android studio -> Configure -> SDK Manager -> SDK Tools (tab) -> Select NDK and install |
|||
|
|||
Tip: To install other versions click on "Show packages details" and select the desired NDK version (Currently using: 21.0.6113669) |
|||
|
|||
## Required env\_vars (for MacOS): |
|||
|
|||
``` bash |
|||
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) |
|||
export ANDROID_NDK=$ANDROID_SDK/ndk/21.0.6113669 |
|||
export HOST_TAG=darwin-x86_64 |
|||
export ANDROID_MIN_SDK_32=18 |
|||
export ANDROID_MIN_SDK_64=21 |
|||
export NDK_TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/$HOST_TAG |
|||
|
|||
export PATH=$PATH:ANDROID_NDK/bin |
|||
``` |
|||
|
|||
## Add Rust android targets |
|||
|
|||
```bash |
|||
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android |
|||
``` |
|||
|
|||
Tell rust the location of the new target linker and AR |
|||
|
|||
```bash |
|||
echo " |
|||
[target.aarch64-linux-android] |
|||
ar = \"$NDK_TOOLCHAIN/bin/aarch64-linux-android-ar\" |
|||
linker = \"$NDK_TOOLCHAIN/bin/aarch64-linux-android$ANDROID_MIN_SDK_64-clang\" |
|||
|
|||
[target.armv7-linux-androideabi] |
|||
ar = \"$NDK_TOOLCHAIN/bin/arm-linux-androideabi-ar\" |
|||
linker = \"$NDK_TOOLCHAIN/bin/armv7a-linux-androideabi$ANDROID_MIN_SDK_32-clang\" |
|||
|
|||
[target.x86_64-linux-android] |
|||
ar = \"$NDK_TOOLCHAIN/bin/x86_64-linux-android-ar\" |
|||
linker = \"$NDK_TOOLCHAIN/bin/x86_64-linux-android$ANDROID_MIN_SDK_64-clang\" |
|||
|
|||
[target.i686-linux-android] |
|||
ar = \"$NDK_TOOLCHAIN/bin/i686-linux-android-ar\" |
|||
linker = \"$NDK_TOOLCHAIN/bin/i686-linux-android$ANDROID_MIN_SDK_32-clang\" |
|||
" >> $HOME/.cargo/config |
|||
|
|||
``` |
|||
|
|||
## Build it |
|||
|
|||
Open the android project with Android Studio, this will generate the file local.properties with the sdk location. |
|||
|
|||
To build can be done form the Gradle menu (on the right in android studio) and select the build task, or just calling gradle build form terminal. |
|||
|
|||
``` Bash |
|||
gradle build #Run inside JNIAdapter/android |
|||
``` |
|||
|
Loading…
Reference in new issue