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 outputsFolder = file("$buildDir/outputs") def baseArtifactId = nativeName def artifactGroupId = "edu.wpi.first.${nativeName}" def zipBaseName = "_GROUP_edu_wpi_first_${nativeName}_ID_${nativeName}-cpp_CLS" def licenseFile = file("$rootDir/license.txt") task cppSourcesZip(type: Zip) { destinationDir = outputsFolder baseName = zipBaseName classifier = "sources" from(licenseFile) { into '/' } from('src/main/native/cpp') { into '/' } } task cppHeadersZip(type: Zip) { destinationDir = outputsFolder baseName = zipBaseName classifier = "headers" from(licenseFile) { into '/' } from('src/main/native/include') { into '/' } } artifacts { archives cppHeadersZip archives cppSourcesZip } addTaskToCopyAllOutputs(cppSourcesZip) addTaskToCopyAllOutputs(cppHeadersZip) model { publishing { def taskList = createComponentZipTasks($.components, nativeName, zipBaseName, Zip, project, includeStandardZipFormat) def allTask if (!project.hasProperty('jenkinsBuild')) { allTask = createAllCombined(taskList, nativeName, zipBaseName, Zip, project) } publications { cpp(MavenPublication) { taskList.each { artifact it } artifact cppHeadersZip artifact cppSourcesZip if (!project.hasProperty('jenkinsBuild')) { artifact allTask } artifactId = "${baseArtifactId}-cpp" groupId artifactGroupId version pubVersion } } } }