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