apply plugin: 'maven-publish' def baseArtifactId = 'imguiSuite-cpp' def artifactGroupId = 'edu.wpi.first.thirdparty.imguiSuite' def zipBaseName = '_GROUP_edu_wpi_first_thirdparty_imguiSuite_ID_imguiSuite-cpp_CLS' def outputsFolder = file("$project.buildDir/outputs") task cppSourcesZip(type: Zip) { destinationDirectory = outputsFolder archiveBaseName = zipBaseName archiveClassifier = "sources" from(licenseFile) { into '/' } from('generated/fonts/src') { into '/' } from('generated/gl3w/src') { into '/' } from('glfw/src') { into '/' } from('imgui/cpp') { into '/' } from('implot/cpp') { into '/' } from('stb/cpp') { into '/' } } task cppHeadersZip(type: Zip) { destinationDirectory = outputsFolder archiveBaseName = zipBaseName archiveClassifier = "headers" from(licenseFile) { into '/' } from('generated/fonts/include') { into '/' } from('generated/gl3w/include') { into '/' } from('glfw/include') { into '/' } from('imgui/include') { into '/' } from('implot/include') { into '/' } from('stb/include') { into '/' } } build.dependsOn cppHeadersZip build.dependsOn cppSourcesZip addTaskToCopyAllOutputs(cppHeadersZip) addTaskToCopyAllOutputs(cppSourcesZip) model { publishing { def imguiSuiteTaskList = createComponentZipTasks($.components, ['imguiSuite'], zipBaseName, Zip, project, includeStandardZipFormat) publications { cpp(MavenPublication) { imguiSuiteTaskList.each { artifact it } artifact cppHeadersZip artifact cppSourcesZip artifactId = baseArtifactId groupId artifactGroupId version wpilibVersioning.version.get() } } } }