zcash-android-wallet-sdk/custom-tasks.gradle

72 lines
2.2 KiB
Groovy
Raw Normal View History

2018-11-20 23:04:53 -08:00
def protoSrcDir = "src/main/proto"
def protoDestDir = "build/generated/source/wire"
def jniSrcDir = "src/main/rust"
def jniDestDir = "build/rust/target"
2018-11-20 23:04:53 -08:00
def libFile = "libzcashwalletsdk.so"
def libX86File = "build/rust/target/i686-linux-android/release/$libFile"
def libX86Dir = "src/main/jniLibs/x86"
def libArm64File = "build/rust/target/aarch64-linux-android/release/$libFile"
def libArm64Dir = "src/main/jniLibs/arm64-v8a"
def libArmeabiFile = "build/rust/target/armv7-linux-androideabi/release/$libFile"
def libArmeabiDir = "src/main/jniLibs/armeabi-v7a"
buildscript {
dependencies {
classpath("com.squareup.wire:wire-compiler:2.2.0")
}
repositories {
mavenCentral()
}
}
2018-11-20 23:04:53 -08:00
tasks.register("generateProtobufClasses").configure {
doFirst {
println("**** CREATING PROTOS ****")
delete(protoDestDir)
mkdir(protoDestDir)
}
description = "Generate Java classes from protocol buffer (.proto) schema files for use with Square's Wire library"
2018-11-20 23:04:53 -08:00
fileTree(dir: protoSrcDir, include: '**/*.proto').each { File file ->
doLast {
javaexec {
main = "com.squareup.wire.WireCompiler"
classpath = buildscript.configurations.classpath
args = ["--proto_path=$protoSrcDir", "--java_out=$protoDestDir", file.path]
}
}
}
2018-11-20 23:04:53 -08:00
inputs.files(fileTree(dir: protoSrcDir, include: '**/*.proto'))
outputs.files(fileTree(dir: protoDestDir, include: '**'))
}
2018-11-20 23:04:53 -08:00
tasks.register("generateJniLibs").configure {
doFirst {
println("**** CREATING JNI LIBS ****")
delete(jniDestDir)
mkdir(jniDestDir)
}
description = "Generate *.so files for connecting to the Rust wallet logic through the JNI"
doLast {
exec {
commandLine("./build-rust.sh")
}
}
2018-11-20 23:04:53 -08:00
inputs.files(fileTree(dir: jniSrcDir, include: '**/*'))
outputs.files(fileTree(dir: jniDestDir, include: '**/*.so'))
}
2018-11-20 23:04:53 -08:00
tasks.register("copyLibX86", Copy) {
from libX86File
into libX86Dir
}
tasks.register("copyLibArm64", Copy) {
from libArm64File
into libArm64Dir
}
tasks.register("copyLibArmeabi", Copy) {
dependsOn copyLibArm64, copyLibX86
from libArmeabiFile
into libArmeabiDir
}