blob: da5e9003a1039bc45fa3691c0b0b30927e86305d [file] [log] [blame]
import org.gradle.api.artifacts.maven.MavenDeployment
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'java'
apply plugin: 'antlr'
apply plugin: 'application'
apply plugin: 'maven'
apply plugin: 'signing'
group 'org.caffetranslator'
version '0.9.2'
def isReleaseBuild
def repositoryUrl
if(hasProperty("release")) {
isReleaseBuild = true
repositoryUrl = stagingRepositoryUrl
} else if(hasProperty("CI")) {
repositoryUrl = snapshotRepositoryUrl
version += "-SNAPSHOT"
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
antlr "org.antlr:antlr4:$antlrVersion"
compile group: 'commons-cli', name: 'commons-cli', version: '1.4'
compileOnly 'org.projectlombok:lombok:1.16.18'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
generateGrammarSource {
arguments += ['-visitor']
}
jar {
baseName = 'caffe-translator'
appendix = 'slim'
version = version
manifest {
attributes 'Main-Class': 'io.mxnet.caffetranslator.Launcher'
}
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
shadowJar {
baseName = 'caffe-translator'
classifier = ''
version = version
}
configurations {
releaseJars
ascSignatures
}
artifacts {
releaseJars shadowJar
releaseJars sourcesJar
releaseJars javadocJar
}
if(isReleaseBuild) {
signing {
sign configurations.releaseJars
}
} else {
task signReleaseJars {
//no-op
}
}
uploadShadow {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment ->
if(isReleaseBuild) {
signing.signPom(deployment)
}
configurations.releaseJars.artifacts.each { ra ->
def ascfile = file(ra.file.path + '.asc')
def ascArtifact = project.artifacts.add('ascSignatures', ascfile) {
classifier = ra.classifier
extension = ra.extension + '.asc'
type = ra.type + '.asc'
}
deployment.addArtifact(ra)
deployment.addArtifact(ascArtifact)
}
}
repository(url: repositoryUrl) {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
pom.project {
name 'Caffe Translator'
packaging 'jar'
description 'Translate Caffe code to MXNet Python code'
url 'http://caffetranslator.org'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
developers {
developer {
name 'Indu Bharathi'
email 'indhub@apache.org'
}
}
scm {
connection 'scm:git:git://github.com:apache/incubator-mxnet.git'
developerConnection 'scm:git:git@github.com:apache/incubator-mxnet.git'
url 'https://github.com/apache/incubator-mxnet.git'
}
}
}
}
}
mainClassName = "io.mxnet.caffetranslator.Launcher"