159 lines
3.6 KiB
Groovy
159 lines
3.6 KiB
Groovy
buildscript {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'com.google.protobuf'
|
|
apply plugin: 'maven'
|
|
apply plugin: 'signing'
|
|
|
|
sourceCompatibility = 1.7
|
|
archivesBaseName = "signal-protocol-java"
|
|
version = version_number
|
|
group = group_info
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
mavenLocal()
|
|
}
|
|
|
|
sourceSets {
|
|
test {
|
|
java {
|
|
srcDirs = ['src/test/java/', project(':tests').file('src/test/java')]
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile "org.whispersystems:curve25519-java:${curve25519_version}"
|
|
compile 'com.google.protobuf:protobuf-javalite:3.10.0'
|
|
|
|
testCompile ('junit:junit:3.8.2')
|
|
}
|
|
|
|
protobuf {
|
|
protoc {
|
|
artifact = 'com.google.protobuf:protoc:3.10.0'
|
|
}
|
|
generateProtoTasks {
|
|
all().each { task ->
|
|
task.builtins {
|
|
java {
|
|
option "lite"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
main.proto.srcDir '../protobuf'
|
|
}
|
|
|
|
|
|
test {
|
|
testLogging {
|
|
events 'passed'
|
|
showStandardStreams = true
|
|
}
|
|
|
|
include 'org/whispersystems/**'
|
|
}
|
|
|
|
def isReleaseBuild() {
|
|
return version.contains("SNAPSHOT") == false
|
|
}
|
|
|
|
def getReleaseRepositoryUrl() {
|
|
return hasProperty('sonatypeRepo') ? sonatypeRepo
|
|
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
|
}
|
|
|
|
def getRepositoryUsername() {
|
|
return hasProperty('whisperSonatypeUsername') ? whisperSonatypeUsername : ""
|
|
}
|
|
|
|
def getRepositoryPassword() {
|
|
return hasProperty('whisperSonatypePassword') ? whisperSonatypePassword : ""
|
|
}
|
|
|
|
signing {
|
|
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
|
|
sign configurations.archives
|
|
}
|
|
|
|
uploadArchives {
|
|
configuration = configurations.archives
|
|
repositories.mavenDeployer {
|
|
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
|
|
|
|
repository(url: getReleaseRepositoryUrl()) {
|
|
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
|
|
}
|
|
|
|
pom.project {
|
|
name 'signal-protocol-java'
|
|
packaging 'jar'
|
|
description 'Signal Protocol cryptography library for Java'
|
|
url 'https://github.com/WhisperSystems/libsignal-android'
|
|
|
|
scm {
|
|
url 'scm:git@github.com:WhisperSystems/libsignal-android.git'
|
|
connection 'scm:git@github.com:WhisperSystems/libsignal-android.git'
|
|
developerConnection 'scm:git@github.com:WhisperSystems/libsignal-android.git'
|
|
}
|
|
|
|
licenses {
|
|
license {
|
|
name 'GPLv3'
|
|
url 'https://www.gnu.org/licenses/gpl-3.0.txt'
|
|
distribution 'repo'
|
|
}
|
|
}
|
|
|
|
developers {
|
|
developer {
|
|
name 'Moxie Marlinspike'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task installArchives(type: Upload) {
|
|
description "Installs the artifacts to the local Maven repository."
|
|
configuration = configurations['archives']
|
|
repositories {
|
|
mavenDeployer {
|
|
repository url: "file://${System.properties['user.home']}/.m2/repository"
|
|
}
|
|
}
|
|
}
|
|
|
|
task packageJavadoc(type: Jar, dependsOn: 'javadoc') {
|
|
from javadoc.destinationDir
|
|
classifier = 'javadoc'
|
|
}
|
|
|
|
task packageSources(type: Jar) {
|
|
from sourceSets.main.allSource
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives(packageJavadoc) {
|
|
type = 'javadoc'
|
|
}
|
|
|
|
archives packageSources
|
|
}
|
|
|