| 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 = 'hal' |
| def artifactGroupId = 'edu.wpi.first.hal' |
| |
| def outputsFolder = file("$project.buildDir/outputs") |
| |
| task cppSourcesZip(type: Zip) { |
| destinationDir = outputsFolder |
| baseName = 'hal' |
| classifier = "sources" |
| |
| from(licenseFile) { |
| into '/' |
| } |
| |
| from('src/main/native/athena') { |
| into '/athena' |
| } |
| |
| from('src/main/native/sim') { |
| into '/sim' |
| } |
| |
| from('src/main/native/shared') { |
| into '/shared' |
| } |
| } |
| |
| task cppHeadersZip(type: Zip) { |
| destinationDir = outputsFolder |
| baseName = 'hal' |
| classifier = "headers" |
| |
| from(licenseFile) { |
| into '/' |
| } |
| |
| from('src/main/native/include') { |
| into '/' |
| } |
| } |
| |
| build.dependsOn cppHeadersZip |
| build.dependsOn cppSourcesZip |
| |
| |
| model { |
| publishing { |
| def halAthenaTaskList = [] |
| if (!project.hasProperty('skipAthena')) { |
| halAthenaTaskList = createComponentZipTasks($.components, 'halAthena', 'zipcpp', Zip, project, includeStandardZipFormat) |
| } |
| def halSimTaskList = [] |
| if (!project.hasProperty('onlyAthena')) { |
| halSimTaskList = createComponentZipTasks($.components, 'halSim', 'zipcpp', Zip, project, includeStandardZipFormat) |
| } |
| |
| def allTask |
| if (!project.hasProperty('jenkinsBuild')) { |
| def combinedList = [] |
| halAthenaTaskList.each { |
| combinedList.add(it) |
| } |
| halSimTaskList.each { |
| combinedList.add(it) |
| } |
| allTask = createAllCombined(combinedList, 'hal', 'zipcpp', Zip, project) |
| } |
| |
| def halSimStaticDepsTaskList = [] |
| if (project.hasProperty('buildHalStaticDeps')) { |
| halSimStaticDepsTaskList = createComponentZipTasks($.components, 'halSimStaticDeps', 'zipcpp', Zip, project, includeStandardZipFormat) |
| if (!project.hasProperty('jenkinsBuild')) { |
| def staticAllTask = createAllCombined(halSimStaticDepsTaskList, 'halSimStaticDeps', 'zipcpp', Zip, project) |
| halSimStaticDepsTaskList.add(staticAllTask) |
| } |
| } |
| |
| publications { |
| cpp(MavenPublication) { |
| halAthenaTaskList.each { |
| artifact it |
| } |
| halSimTaskList.each { |
| artifact it |
| } |
| if (!project.hasProperty('jenkinsBuild')) { |
| artifact allTask |
| } |
| artifact cppHeadersZip |
| artifact cppSourcesZip |
| |
| artifactId = baseArtifactId |
| groupId artifactGroupId |
| version pubVersion |
| } |
| if (project.hasProperty('buildHalStaticDeps')) { |
| cppStaticDeps(MavenPublication) { |
| halSimStaticDepsTaskList.each { |
| artifact it |
| } |
| |
| artifactId = baseArtifactId + 'StaticDeps' |
| groupId artifactGroupId |
| version pubVersion |
| } |
| } |
| } |
| } |
| } |