blob: 7599a7426a94aaf5fc909f428eb02190aa9c64af [file] [log] [blame]
Brian Silverman8fce7482020-01-05 13:18:21 -08001apply plugin: 'maven-publish'
2
3def 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
Austin Schuh1e69f942020-11-14 15:06:14 -08009def licenseFile = file("$rootDir/license.md")
Brian Silverman8fce7482020-01-05 13:18:21 -080010
11task cppSourcesZip(type: Zip) {
12 destinationDirectory = outputsFolder
13 archiveBaseName = zipBaseName
James Kuszmaulb13e13f2023-11-22 20:44:04 -080014 archiveClassifier = "sources"
Brian Silverman8fce7482020-01-05 13:18:21 -080015
16 from(licenseFile) {
17 into '/'
18 }
19
20 from('src/main/native/cpp') {
21 into '/'
22 }
23}
24
25task cppHeadersZip(type: Zip) {
26 destinationDirectory = outputsFolder
27 archiveBaseName = zipBaseName
James Kuszmaulb13e13f2023-11-22 20:44:04 -080028 archiveClassifier = "headers"
Brian Silverman8fce7482020-01-05 13:18:21 -080029
30 from(licenseFile) {
31 into '/'
32 }
33
Austin Schuh812d0d12021-11-04 20:16:48 -070034 ext.includeDirs = [
35 project.file('src/main/native/include')
36 ]
37
38 ext.includeDirs.each {
39 from(it) {
40 into '/'
41 }
Brian Silverman8fce7482020-01-05 13:18:21 -080042 }
43}
44
45artifacts {
46 archives cppHeadersZip
47 archives cppSourcesZip
48}
49
50addTaskToCopyAllOutputs(cppSourcesZip)
51addTaskToCopyAllOutputs(cppHeadersZip)
52
53model {
54 publishing {
55 def taskList = createComponentZipTasks($.components, [nativeName], zipBaseName, Zip, project, includeStandardZipFormat)
56
57 publications {
58 cpp(MavenPublication) {
59 taskList.each {
60 artifact it
61 }
62 artifact cppHeadersZip
63 artifact cppSourcesZip
64
65 artifactId = "${baseArtifactId}-cpp"
66 groupId artifactGroupId
67 version wpilibVersioning.version.get()
68 }
69 }
70 }
71}