blob: aab12433e86f8a6c127832dbee2a17c57d574c2f [file] [log] [blame]
apply plugin: 'maven-publish'
apply plugin: 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin'
if (!hasProperty('releaseType')) {
WPILibVersion {
releaseType = 'dev'
}
}
def pubVersion
if (project.hasProperty("publishVersion")) {
pubVersion = project.publishVersion
} else {
pubVersion = WPILibVersion.version
}
def baseArtifactId = 'wpilibj'
def artifactGroupId = 'edu.wpi.first.wpilibj'
def outputsFolder = file("$project.buildDir/outputs")
task cppSourcesZip(type: Zip) {
destinationDir = outputsFolder
baseName = 'wpilibJNI'
classifier = "sources"
from(licenseFile) {
into '/'
}
from('src/main/native/cpp') {
into '/'
}
model {
tasks {
it.each {
if (it in getJNIHeadersClass()) {
from (it.outputs.files) {
into '/'
}
dependsOn it
}
}
}
}
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadoc(type: Javadoc, overwrite: true) {
javadoc.options.links("http://docs.oracle.com/javase/8/docs/api/")
options.addStringOption "tag", "pre:a:Pre-Condition"
options.addStringOption('Xdoclint:accessibility,syntax,html', '-quiet')
source = sourceSets.main.allJava
failOnError = true
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
if (project.hasProperty('jenkinsBuild')) {
jar {
classifier = 'javaArtifact'
}
}
artifacts {
archives sourcesJar
archives javadocJar
archives cppSourcesZip
}
model {
publishing {
def wpilibJNIStaticTaskList = createComponentZipTasks($.components, 'wpilibJNIStatic', 'jni', Jar, project, { task, value ->
value.each { binary->
if (binary.buildable) {
if (binary instanceof SharedLibraryBinarySpec) {
task.dependsOn binary.buildTask
task.from (binary.sharedLibraryFile) {
into getPlatformPath(binary)
}
}
}
}
})
def wpilibJNISharedTaskList = createComponentZipTasks($.components, 'wpilibJNIShared', 'jni', Jar, project, { task, value ->
value.each { binary->
if (binary.buildable) {
if (binary instanceof SharedLibraryBinarySpec) {
task.dependsOn binary.buildTask
task.from (binary.sharedLibraryFile) {
into getPlatformPath(binary) + '/shared'
}
task.from(new File(binary.sharedLibraryFile.absolutePath + ".debug")) {
into getPlatformPath(binary) + '/shared'
}
}
}
}
})
def allSharedTask
if (!project.hasProperty('jenkinsBuild')) {
allSharedTask = createAllCombined(wpilibJNISharedTaskList, 'wpilibJNIShared', 'jni', Jar, project)
}
def allStaticTask
if (!project.hasProperty('jenkinsBuild')) {
allStaticTask = createAllCombined(wpilibJNIStaticTaskList, 'wpilibJNIStatic', 'jni', Jar, project)
}
publications {
jniShared(MavenPublication) {
wpilibJNISharedTaskList.each {
artifact it
}
if (!project.hasProperty('jenkinsBuild')) {
artifact allSharedTask
}
artifact cppSourcesZip
artifactId = "${baseArtifactId}-jniShared"
groupId artifactGroupId
version pubVersion
}
jni(MavenPublication) {
wpilibJNIStaticTaskList.each {
artifact it
}
if (!project.hasProperty('jenkinsBuild')) {
artifact allStaticTask
}
artifact cppSourcesZip
artifactId = "${baseArtifactId}-jni"
groupId artifactGroupId
version pubVersion
}
}
}
}
publishing {
publications {
java(MavenPublication) {
artifact jar
artifact sourcesJar
artifact javadocJar
artifactId = "${baseArtifactId}-java"
groupId artifactGroupId
version pubVersion
}
}
}