Native jni build (#5)
* Each native library is in its own jar. Got rid of cross compilation. The project is `secp256k1` and not `secp256k1-kmp`. * Updated CI to use all 3 OS VMs Co-authored-by: Salomon BRYS <salomon@kodein.net>
This commit is contained in:
33
jni/jvm/linux/build.gradle.kts
Normal file
33
jni/jvm/linux/build.gradle.kts
Normal file
@@ -0,0 +1,33 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
`maven-publish`
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":jni:jvm"))
|
||||
}
|
||||
|
||||
val copyJni by tasks.creating(Sync::class) {
|
||||
onlyIf { org.gradle.internal.os.OperatingSystem.current().isLinux }
|
||||
dependsOn(":jni:jvm:buildNativeHost")
|
||||
from(rootDir.resolve("jni/jvm/build/linux/libsecp256k1-jni.so"))
|
||||
into(buildDir.resolve("jniResources/fr/acinq/secp256k1/jni/native/linux-x86_64"))
|
||||
}
|
||||
|
||||
(tasks["processResources"] as ProcessResources).apply {
|
||||
onlyIf { org.gradle.internal.os.OperatingSystem.current().isLinux }
|
||||
dependsOn(copyJni)
|
||||
from(buildDir.resolve("jniResources"))
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
val pub = create<MavenPublication>("jvm") {
|
||||
artifactId = "secp256k1-jni-jvm-linux"
|
||||
from(components["java"])
|
||||
}
|
||||
if (!org.gradle.internal.os.OperatingSystem.current().isLinux) {
|
||||
tasks.withType<AbstractPublishToMaven>().all { onlyIf { publication != pub } }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user