blob: 5002def73776fa7c92326c55ae04ec8a29afad94 [file] [log] [blame]
Brian Silverman41cdd3e2019-01-19 19:48:58 -08001apply plugin: 'maven-publish'
2
Brian Silverman41cdd3e2019-01-19 19:48:58 -08003def outputsFolder = file("$buildDir/outputs")
4
5def baseArtifactId = nativeName
6def artifactGroupId = "edu.wpi.first.${nativeName}"
7def zipBaseName = "_GROUP_edu_wpi_first_${nativeName}_ID_${nativeName}-cpp_CLS"
8
9def licenseFile = file("$rootDir/license.txt")
10
11task cppSourcesZip(type: Zip) {
James Kuszmaul4b81d302019-12-14 20:53:14 -080012 destinationDirectory = outputsFolder
13 archiveBaseName = zipBaseName
Brian Silverman41cdd3e2019-01-19 19:48:58 -080014 classifier = "sources"
15
16 from(licenseFile) {
17 into '/'
18 }
19
20 from('src/main/native/cpp') {
21 into '/'
22 }
23}
24
25task cppHeadersZip(type: Zip) {
James Kuszmaul4b81d302019-12-14 20:53:14 -080026 destinationDirectory = outputsFolder
27 archiveBaseName = zipBaseName
Brian Silverman41cdd3e2019-01-19 19:48:58 -080028 classifier = "headers"
29
30 from(licenseFile) {
31 into '/'
32 }
33
34 from('src/main/native/include') {
35 into '/'
36 }
37}
38
39artifacts {
40 archives cppHeadersZip
41 archives cppSourcesZip
42}
43
44addTaskToCopyAllOutputs(cppSourcesZip)
45addTaskToCopyAllOutputs(cppHeadersZip)
46
47model {
48 publishing {
49 def taskList = createComponentZipTasks($.components, [nativeName], zipBaseName, Zip, project, includeStandardZipFormat)
50
51 publications {
52 cpp(MavenPublication) {
53 taskList.each {
54 artifact it
55 }
56 artifact cppHeadersZip
57 artifact cppSourcesZip
58
59 artifactId = "${baseArtifactId}-cpp"
60 groupId artifactGroupId
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080061 version wpilibVersioning.version.get()
Brian Silverman41cdd3e2019-01-19 19:48:58 -080062 }
63 }
64 }
65}