apply plugin: 'maven-publish' def pubVersion = '' if (project.hasProperty("publishVersion")) { pubVersion = project.publishVersion } else { pubVersion = WPILibVersion.version } def baseArtifactId = 'wpilibc-cpp' def artifactGroupId = 'edu.wpi.first.wpilibc' def zipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_wpilibc-cpp_CLS' def outputsFolder = file("$project.buildDir/outputs") task cppSourcesZip(type: Zip) { destinationDir = outputsFolder baseName = zipBaseName classifier = "sources" from(licenseFile) { into '/' } from('src/main/native/cpp') { into '/' } from("$buildDir/generated/cpp") { into '/' } } cppSourcesZip.dependsOn generateCppVersion task cppHeadersZip(type: Zip) { destinationDir = outputsFolder baseName = zipBaseName classifier = "headers" from(licenseFile) { into '/' } from('src/main/native/include') { into '/' } } build.dependsOn cppHeadersZip build.dependsOn cppSourcesZip addTaskToCopyAllOutputs(cppHeadersZip) addTaskToCopyAllOutputs(cppSourcesZip) model { publishing { def wpilibCTaskList = createComponentZipTasks($.components, 'wpilibc', zipBaseName, Zip, project, includeStandardZipFormat) def allTask if (!project.hasProperty('jenkinsBuild')) { allTask = createAllCombined(wpilibCTaskList, 'wpilibc', zipBaseName, Zip, project) } publications { cpp(MavenPublication) { wpilibCTaskList.each { artifact it } if (!project.hasProperty('jenkinsBuild')) { artifact allTask } artifact cppHeadersZip artifact cppSourcesZip artifactId = baseArtifactId groupId artifactGroupId version pubVersion } } } }