Add option to skip building and testing Android libraries (#33)
* Add otpion to skip building and testing Android libraries Add `skip.android=true` to the local.properties files at the project's root to skip Android builds.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
|
||||
evaluationDependsOn(":jni:android")
|
||||
val includeAndroid = System.getProperty("includeAndroid")?.toBoolean() ?: true
|
||||
|
||||
if (includeAndroid) {
|
||||
evaluationDependsOn(":jni:android")
|
||||
}
|
||||
|
||||
val currentOs = OperatingSystem.current()
|
||||
val bash = if (currentOs.isWindows) "bash.exe" else "bash"
|
||||
@@ -39,34 +43,39 @@ val buildSecp256k1Ios by tasks.creating(Exec::class) {
|
||||
commandLine(bash, "build-ios.sh")
|
||||
}
|
||||
|
||||
val buildSecp256k1Android by tasks.creating {
|
||||
group = "build"
|
||||
buildSecp256k1.dependsOn(this)
|
||||
}
|
||||
fun creatingBuildSecp256k1Android(arch: String) = tasks.creating(Exec::class) {
|
||||
group = "build"
|
||||
buildSecp256k1Android.dependsOn(this)
|
||||
if (includeAndroid) {
|
||||
|
||||
inputs.files(projectDir.resolve("build-android.sh"))
|
||||
outputs.dir(projectDir.resolve("build/android/$arch"))
|
||||
|
||||
workingDir = projectDir
|
||||
|
||||
val toolchain = when {
|
||||
currentOs.isLinux -> "linux-x86_64"
|
||||
currentOs.isMacOsX -> "darwin-x86_64"
|
||||
currentOs.isWindows -> "windows-x86_64"
|
||||
else -> error("No Android toolchain defined for this OS: $currentOs")
|
||||
val buildSecp256k1Android by tasks.creating {
|
||||
group = "build"
|
||||
buildSecp256k1.dependsOn(this)
|
||||
}
|
||||
environment("TOOLCHAIN", toolchain)
|
||||
environment("ARCH", arch)
|
||||
environment("ANDROID_NDK", (project(":jni:android").extensions["android"] as com.android.build.gradle.LibraryExtension).ndkDirectory)
|
||||
commandLine(bash, "build-android.sh")
|
||||
|
||||
fun creatingBuildSecp256k1Android(arch: String) = tasks.creating(Exec::class) {
|
||||
group = "build"
|
||||
buildSecp256k1Android.dependsOn(this)
|
||||
|
||||
inputs.files(projectDir.resolve("build-android.sh"))
|
||||
outputs.dir(projectDir.resolve("build/android/$arch"))
|
||||
|
||||
workingDir = projectDir
|
||||
|
||||
val toolchain = when {
|
||||
currentOs.isLinux -> "linux-x86_64"
|
||||
currentOs.isMacOsX -> "darwin-x86_64"
|
||||
currentOs.isWindows -> "windows-x86_64"
|
||||
else -> error("No Android toolchain defined for this OS: $currentOs")
|
||||
}
|
||||
environment("TOOLCHAIN", toolchain)
|
||||
environment("ARCH", arch)
|
||||
environment("ANDROID_NDK", (project(":jni:android").extensions["android"] as com.android.build.gradle.LibraryExtension).ndkDirectory)
|
||||
commandLine(bash, "build-android.sh")
|
||||
}
|
||||
|
||||
val buildSecp256k1AndroidX86_64 by creatingBuildSecp256k1Android("x86_64")
|
||||
val buildSecp256k1AndroidX86 by creatingBuildSecp256k1Android("x86")
|
||||
val buildSecp256k1AndroidArm64v8a by creatingBuildSecp256k1Android("arm64-v8a")
|
||||
val buildSecp256k1AndroidArmeabiv7a by creatingBuildSecp256k1Android("armeabi-v7a")
|
||||
}
|
||||
val buildSecp256k1AndroidX86_64 by creatingBuildSecp256k1Android("x86_64")
|
||||
val buildSecp256k1AndroidX86 by creatingBuildSecp256k1Android("x86")
|
||||
val buildSecp256k1AndroidArm64v8a by creatingBuildSecp256k1Android("arm64-v8a")
|
||||
val buildSecp256k1AndroidArmeabiv7a by creatingBuildSecp256k1Android("armeabi-v7a")
|
||||
|
||||
val clean by tasks.creating {
|
||||
group = "build"
|
||||
|
||||
Reference in New Issue
Block a user