2022-12-14 15:36:29 -05:00
|
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
|
2022-11-30 12:03:01 -05:00
|
|
|
// library version is defined in gradle.properties
|
|
|
|
val libraryVersion: String by project
|
|
|
|
|
2022-02-11 16:59:24 -05:00
|
|
|
plugins {
|
|
|
|
id("com.android.library")
|
2024-03-28 12:09:13 -04:00
|
|
|
id("org.jetbrains.kotlin.android")
|
|
|
|
id("org.gradle.maven-publish")
|
|
|
|
id("org.gradle.signing")
|
2022-04-07 13:50:34 -04:00
|
|
|
|
|
|
|
// Custom plugin to generate the native libs and bindings file
|
|
|
|
id("org.bitcoindevkit.plugins.generate-android-bindings")
|
2022-02-11 16:59:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
2024-03-28 12:09:13 -04:00
|
|
|
namespace = "org.bitcoindevkit"
|
|
|
|
compileSdk = 34
|
2022-02-11 16:59:24 -05:00
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
minSdk = 21
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
consumerProguardFiles("consumer-rules.pro")
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
getByName("release") {
|
|
|
|
isMinifyEnabled = false
|
|
|
|
proguardFiles(file("proguard-android-optimize.txt"), file("proguard-rules.pro"))
|
|
|
|
}
|
|
|
|
}
|
2022-03-20 15:45:01 -07:00
|
|
|
|
|
|
|
publishing {
|
|
|
|
singleVariant("release") {
|
|
|
|
withSourcesJar()
|
|
|
|
withJavadocJar()
|
|
|
|
}
|
|
|
|
}
|
2022-02-11 16:59:24 -05:00
|
|
|
}
|
|
|
|
|
2024-04-09 16:14:29 -04:00
|
|
|
kotlin {
|
|
|
|
tasks.withType<KotlinCompile>().configureEach {
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "17"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
java {
|
|
|
|
toolchain {
|
|
|
|
languageVersion.set(JavaLanguageVersion.of(17))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-11 16:59:24 -05:00
|
|
|
dependencies {
|
2024-01-24 13:44:55 -06:00
|
|
|
implementation("net.java.dev.jna:jna:5.14.0@aar")
|
2022-02-11 16:59:24 -05:00
|
|
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7")
|
|
|
|
implementation("androidx.appcompat:appcompat:1.4.0")
|
|
|
|
implementation("androidx.core:core-ktx:1.7.0")
|
|
|
|
api("org.slf4j:slf4j-api:1.7.30")
|
|
|
|
|
|
|
|
androidTestImplementation("com.github.tony19:logback-android:2.0.0")
|
|
|
|
androidTestImplementation("androidx.test.ext:junit:1.1.3")
|
|
|
|
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
|
2023-10-25 15:25:16 -05:00
|
|
|
androidTestImplementation("org.jetbrains.kotlin:kotlin-test:1.6.10")
|
|
|
|
androidTestImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.6.10")
|
2022-02-11 16:59:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
afterEvaluate {
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
create<MavenPublication>("maven") {
|
|
|
|
groupId = "org.bitcoindevkit"
|
|
|
|
artifactId = "bdk-android"
|
2022-11-30 12:03:01 -05:00
|
|
|
version = libraryVersion
|
2022-10-24 10:19:56 -04:00
|
|
|
|
2022-02-11 16:59:24 -05:00
|
|
|
from(components["release"])
|
|
|
|
pom {
|
|
|
|
name.set("bdk-android")
|
|
|
|
description.set("Bitcoin Dev Kit Kotlin language bindings.")
|
|
|
|
url.set("https://bitcoindevkit.org")
|
|
|
|
licenses {
|
|
|
|
license {
|
|
|
|
name.set("APACHE 2.0")
|
|
|
|
url.set("https://github.com/bitcoindevkit/bdk/blob/master/LICENSE-APACHE")
|
|
|
|
}
|
|
|
|
license {
|
|
|
|
name.set("MIT")
|
|
|
|
url.set("https://github.com/bitcoindevkit/bdk/blob/master/LICENSE-MIT")
|
|
|
|
}
|
|
|
|
}
|
2024-03-27 09:30:59 -04:00
|
|
|
developers {
|
|
|
|
developer {
|
|
|
|
id.set("bdkdevelopers")
|
|
|
|
name.set("Bitcoin Dev Kit Developers")
|
|
|
|
email.set("dev@bitcoindevkit.org")
|
|
|
|
}
|
|
|
|
}
|
2022-02-11 16:59:24 -05:00
|
|
|
scm {
|
|
|
|
connection.set("scm:git:github.com/bitcoindevkit/bdk-ffi.git")
|
|
|
|
developerConnection.set("scm:git:ssh://github.com/bitcoindevkit/bdk-ffi.git")
|
|
|
|
url.set("https://github.com/bitcoindevkit/bdk-ffi/tree/master")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-04-09 16:15:08 -04:00
|
|
|
|
|
|
|
// This is required because we must ensure the moveNativeAndroidLibs task is executed after
|
|
|
|
// the mergeReleaseJniLibFolders (hard requirement introduced by our upgrade to Gradle 8.7)
|
|
|
|
tasks.named("mergeReleaseJniLibFolders") {
|
|
|
|
dependsOn(":lib:moveNativeAndroidLibs")
|
|
|
|
}
|
2022-02-11 16:59:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
signing {
|
2022-08-31 14:54:41 -04:00
|
|
|
val signingKeyId: String? by project
|
|
|
|
val signingKey: String? by project
|
|
|
|
val signingPassword: String? by project
|
|
|
|
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
|
2022-02-11 16:59:24 -05:00
|
|
|
sign(publishing.publications)
|
|
|
|
}
|
2022-12-14 15:36:29 -05:00
|
|
|
|
|
|
|
// This task dependency ensures that we build the bindings
|
|
|
|
// binaries before running the tests
|
|
|
|
tasks.withType<KotlinCompile> {
|
|
|
|
dependsOn("buildAndroidLib")
|
|
|
|
}
|