mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-20 03:52:17 +02:00
caf3dade92
This can give better error messages for JNI mistakes that might otherwise crash or go unnoticed. Tested by introducing such a mistake. (Though it's hard to do with the jni crate's safe interfaces, which is a good thing!) The Android Emulator always has its equivalent checks on, so the Slow Tests are also giving us some confidence about our JNI usage.
105 lines
2.3 KiB
Groovy
105 lines
2.3 KiB
Groovy
plugins {
|
|
id 'java-library'
|
|
id 'maven-publish'
|
|
id 'signing'
|
|
}
|
|
|
|
sourceCompatibility = 1.8
|
|
archivesBaseName = "libsignal-client"
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
mavenLocal()
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
// Include libsignal sources shared between the client and server
|
|
srcDir '../shared/java'
|
|
}
|
|
resources {
|
|
srcDir '../shared/resources'
|
|
}
|
|
}
|
|
test {
|
|
java {
|
|
srcDir '../shared/test/java'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation 'junit:junit:4.13'
|
|
}
|
|
|
|
test {
|
|
jvmArgs '-Xcheck:jni'
|
|
testLogging {
|
|
events 'passed'
|
|
showStandardStreams = true
|
|
showExceptions true
|
|
exceptionFormat 'full'
|
|
showCauses true
|
|
showStackTraces true
|
|
}
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
tasks.named('jar') {
|
|
manifest {
|
|
attributes('Automatic-Module-Name': 'org.signal.libsignal')
|
|
}
|
|
}
|
|
|
|
processResources {
|
|
// TODO: Build a different variant of the JNI library for server.
|
|
dependsOn ':makeJniLibrariesDesktop'
|
|
}
|
|
|
|
// MARK: Publishing
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifactId = archivesBaseName
|
|
from components.java
|
|
|
|
pom {
|
|
name = archivesBaseName
|
|
description = 'Signal Protocol cryptography library for Java'
|
|
url = 'https://github.com/signalapp/libsignal'
|
|
|
|
scm {
|
|
url = 'scm:git@github.com:signalapp/libsignal.git'
|
|
connection = 'scm:git@github.com:signalapp/libsignal.git'
|
|
developerConnection = 'scm:git@github.com:signalapp/libsignal.git'
|
|
}
|
|
|
|
licenses {
|
|
license {
|
|
name = 'AGPLv3'
|
|
url = 'https://www.gnu.org/licenses/agpl-3.0.txt'
|
|
}
|
|
}
|
|
|
|
developers {
|
|
developer {
|
|
name = 'Signal Messenger LLC'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
setUpSigningKey(signing)
|
|
signing {
|
|
required { isReleaseBuild() && gradle.taskGraph.hasTask(":client:publish") }
|
|
sign publishing.publications.mavenJava
|
|
}
|