diff --git a/build.gradle b/build.gradle index da3c25ccab..e87e00ea16 100644 --- a/build.gradle +++ b/build.gradle @@ -135,6 +135,36 @@ if (!hasProperty('releaseType')) { } } +def pubVersion +if (project.hasProperty("publishVersion")) { + pubVersion = project.publishVersion +} else { + pubVersion = WPILibVersion.version +} + +def outputsFolder = file("$buildDir/outputs") + +def versionFile = file("$outputsFolder/version.txt") + +task outputVersions() { + description = 'Prints the versions of wpilib to a file for use by the downstream packaging project' + group = 'Build' + outputs.files(versionFile) + + doFirst { + buildDir.mkdir() + outputsFolder.mkdir() + } + + doLast { + versionFile.write pubVersion + } +} + +task build() {} + +build.dependsOn outputVersions + task clean(type: Delete) { delete buildDir } diff --git a/hal/publish.gradle b/hal/publish.gradle index b61f8c6f72..924bf17984 100644 --- a/hal/publish.gradle +++ b/hal/publish.gradle @@ -17,8 +17,11 @@ if (project.hasProperty("publishVersion")) { def baseArtifactId = 'hal' def artifactGroupId = 'edu.wpi.first.hal' +def outputsFolder = file("$project.buildDir/outputs") + task cppSourcesZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'hal' classifier = "sources" from(licenseFile) { @@ -39,7 +42,8 @@ task cppSourcesZip(type: Zip) { } task cppHeadersZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'hal' classifier = "headers" from(licenseFile) { @@ -51,6 +55,10 @@ task cppHeadersZip(type: Zip) { } } +build.dependsOn cppHeadersZip +build.dependsOn cppSourcesZip + + model { publishing { def halAthenaTaskList = [] diff --git a/ni-libraries/build.gradle b/ni-libraries/build.gradle index 28fdbc1ae3..3fa4f57374 100644 --- a/ni-libraries/build.gradle +++ b/ni-libraries/build.gradle @@ -33,8 +33,11 @@ ext.addNiLibrariesToLinker = { binary-> } } +def outputsFolder = file("$project.buildDir/outputs") + task libZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'nilibraries-classifier' classifier = "linuxathena" from('lib') { @@ -43,7 +46,8 @@ task libZip(type: Zip) { } task headersZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'nilibraries-classifier' classifier = "headers" from('include') { @@ -51,6 +55,11 @@ task headersZip(type: Zip) { } } +task build() {} + +build.dependsOn headersZip +build.dependsOn libZip + apply from: 'publish.gradle' task patchNiLibraries() { diff --git a/ni-libraries/publish.gradle b/ni-libraries/publish.gradle index 48c9dc7f88..087f82617c 100644 --- a/ni-libraries/publish.gradle +++ b/ni-libraries/publish.gradle @@ -17,7 +17,6 @@ if (project.hasProperty("publishVersion")) { def baseArtifactId = 'ni-libraries' def artifactGroupId = 'edu.wpi.first.ni-libraries' - publishing { publications { nilibraries(MavenPublication) { diff --git a/wpilibc/publish.gradle b/wpilibc/publish.gradle index 320b4de389..260a93d102 100644 --- a/wpilibc/publish.gradle +++ b/wpilibc/publish.gradle @@ -17,8 +17,11 @@ if (project.hasProperty("publishVersion")) { def baseArtifactId = 'wpilibc' def artifactGroupId = 'edu.wpi.first.wpilibc' +def outputsFolder = file("$project.buildDir/outputs") + task cppSourcesZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'wpilibc' classifier = "sources" from(licenseFile) { @@ -31,7 +34,8 @@ task cppSourcesZip(type: Zip) { } task cppHeadersZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'wpilibc' classifier = "headers" from(licenseFile) { @@ -43,11 +47,14 @@ task cppHeadersZip(type: Zip) { } } +build.dependsOn cppHeadersZip +build.dependsOn cppSourcesZip + def linkFile = project.file("${buildDir}/libwpi.so") task linkScriptZip(type: Zip) { - destinationDir = project.buildDir - baseName = 'zipwpiliblinkscript' + destinationDir = outputsFolder + baseName = 'wpilibclinkscript-classifier' classifier = "linuxathena" from(licenseFile) { @@ -58,6 +65,8 @@ task linkScriptZip(type: Zip) { } } +build.dependsOn linkScriptZip + model { publishing { def wpilibCTaskList = createComponentZipTasks($.components, 'wpilibc', 'zipcpp', Zip, project, includeStandardZipFormat) diff --git a/wpilibj/publish.gradle b/wpilibj/publish.gradle index 27b833bfd5..b481bdf3a7 100644 --- a/wpilibj/publish.gradle +++ b/wpilibj/publish.gradle @@ -17,8 +17,11 @@ if (project.hasProperty("publishVersion")) { def baseArtifactId = 'wpilibj' def artifactGroupId = 'edu.wpi.first.wpilibj' +def outputsFolder = file("$project.buildDir/outputs") + task cppSourcesZip(type: Zip) { - destinationDir = project.buildDir + destinationDir = outputsFolder + baseName = 'wpilibJNI' classifier = "sources" from(licenseFile) { @@ -61,6 +64,12 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from javadoc.destinationDir } +if (project.hasProperty('jenkinsBuild')) { + jar { + classifier = 'javaArtifact' + } +} + artifacts { archives sourcesJar archives javadocJar