apply plugin: 'maven-publish' def baseArtifactId = project.nativeName def artifactGroupId = project.groupId def cppZipBaseName = "_GROUP_org_wpilib_fields_ID_${baseArtifactId}-cpp_CLS" def outputsFolder = file("$project.buildDir/outputs") task cppSourcesZip(type: Zip) { destinationDirectory = outputsFolder archiveBaseName = cppZipBaseName archiveClassifier = "sources" from(licenseFile) { into '/' } from('src/main/native/cpp') { into '/' } from("$buildDir/generated/cpp") { into '/' } } task cppHeadersZip(type: Zip) { destinationDirectory = outputsFolder archiveBaseName = cppZipBaseName archiveClassifier = "headers" from(licenseFile) { into '/' } ext.includeDirs = [ project.file('src/main/native/include') ] ext.includeDirs.each { from(it) { into '/' } } } build.dependsOn cppHeadersZip build.dependsOn cppSourcesZip addTaskToCopyAllOutputs(cppHeadersZip) addTaskToCopyAllOutputs(cppSourcesZip) model { publishing { def wpilibCTaskList = createComponentZipTasks($.components, ['fields'], cppZipBaseName, Zip, project, includeStandardZipFormat) publications { cpp(MavenPublication) { wpilibCTaskList.each { artifact it } artifact cppHeadersZip artifact cppSourcesZip artifactId = "${baseArtifactId}-cpp" groupId = artifactGroupId version = wpilibVersioning.version.get() } } } }