build: stop build if android ndk root is not defined for android lib
This commit is contained in:
parent
f31678bf37
commit
d4736a64d1
@ -48,12 +48,17 @@ rustup default 1.77.1
|
|||||||
rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi
|
rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi
|
||||||
```
|
```
|
||||||
5. Install Android SDK and Build-Tools for API level 30+
|
5. Install Android SDK and Build-Tools for API level 30+
|
||||||
6. Setup `$ANDROID_SDK_ROOT` and `$ANDROID_NDK_ROOT` path variables (which are required by the
|
6. Setup `ANDROID_SDK_ROOT` and `ANDROID_NDK_ROOT` path variables which are required by the build tool. Note that currently, NDK version 25.2.9519653 or above is required. For example:
|
||||||
build tool), for example (note that currently, NDK version 25.2.9519653 or above is required):
|
|
||||||
```shell
|
```shell
|
||||||
export ANDROID_SDK_ROOT=~/Android/Sdk
|
# macOS
|
||||||
|
export ANDROID_SDK_ROOT=~/Library/Android/sdk
|
||||||
|
export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/25.2.9519653
|
||||||
|
|
||||||
|
# linux
|
||||||
|
export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
|
||||||
export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/25.2.9519653
|
export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/25.2.9519653
|
||||||
```
|
```
|
||||||
|
|
||||||
7. Build kotlin bindings
|
7. Build kotlin bindings
|
||||||
```sh
|
```sh
|
||||||
# build Android library
|
# build Android library
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package org.bitcoindevkit.plugins
|
package org.bitcoindevkit.plugins
|
||||||
|
|
||||||
|
|
||||||
val operatingSystem: OS = when {
|
val operatingSystem: OS = when {
|
||||||
System.getProperty("os.name").contains("mac", ignoreCase = true) -> OS.MAC
|
System.getProperty("os.name").contains("mac", ignoreCase = true) -> OS.MAC
|
||||||
System.getProperty("os.name").contains("linux", ignoreCase = true) -> OS.LINUX
|
System.getProperty("os.name").contains("linux", ignoreCase = true) -> OS.LINUX
|
||||||
|
@ -17,6 +17,11 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
|
|||||||
OS.OTHER -> throw Error("Cannot build Android library from current architecture")
|
OS.OTHER -> throw Error("Cannot build Android library from current architecture")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if ANDROID_NDK_ROOT is not set, stop build
|
||||||
|
if (System.getenv("ANDROID_NDK_ROOT") == null) {
|
||||||
|
throw IllegalStateException("ANDROID_NDK_ROOT environment variable is not set; cannot build library")
|
||||||
|
}
|
||||||
|
|
||||||
// arm64-v8a is the most popular hardware architecture for Android
|
// arm64-v8a is the most popular hardware architecture for Android
|
||||||
val buildAndroidAarch64Binary by tasks.register<Exec>("buildAndroidAarch64Binary") {
|
val buildAndroidAarch64Binary by tasks.register<Exec>("buildAndroidAarch64Binary") {
|
||||||
|
|
||||||
@ -26,13 +31,6 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
|
|||||||
executable("cargo")
|
executable("cargo")
|
||||||
args(cargoArgs)
|
args(cargoArgs)
|
||||||
|
|
||||||
// if ANDROID_NDK_ROOT is not set then set it to github actions default
|
|
||||||
if (System.getenv("ANDROID_NDK_ROOT") == null) {
|
|
||||||
environment(
|
|
||||||
Pair("ANDROID_NDK_ROOT", "${System.getenv("ANDROID_SDK_ROOT")}/ndk-bundle")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
environment(
|
environment(
|
||||||
// add build toolchain to PATH
|
// add build toolchain to PATH
|
||||||
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
||||||
@ -56,13 +54,6 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
|
|||||||
executable("cargo")
|
executable("cargo")
|
||||||
args(cargoArgs)
|
args(cargoArgs)
|
||||||
|
|
||||||
// if ANDROID_NDK_ROOT is not set then set it to github actions default
|
|
||||||
if (System.getenv("ANDROID_NDK_ROOT") == null) {
|
|
||||||
environment(
|
|
||||||
Pair("ANDROID_NDK_ROOT", "${System.getenv("ANDROID_SDK_ROOT")}/ndk-bundle")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
environment(
|
environment(
|
||||||
// add build toolchain to PATH
|
// add build toolchain to PATH
|
||||||
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
||||||
@ -86,13 +77,6 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
|
|||||||
executable("cargo")
|
executable("cargo")
|
||||||
args(cargoArgs)
|
args(cargoArgs)
|
||||||
|
|
||||||
// if ANDROID_NDK_ROOT is not set then set it to github actions default
|
|
||||||
if (System.getenv("ANDROID_NDK_ROOT") == null) {
|
|
||||||
environment(
|
|
||||||
Pair("ANDROID_NDK_ROOT", "${System.getenv("ANDROID_SDK_ROOT")}/ndk-bundle")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
environment(
|
environment(
|
||||||
// add build toolchain to PATH
|
// add build toolchain to PATH
|
||||||
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user