blob: 06f88dff3268a1a46f1e877626ab7c1061a72cf7 [file] [log] [blame]
Brian Silverman41cdd3e2019-01-19 19:48:58 -08001apply plugin: 'maven-publish'
2
3def pubVersion = ''
4if (project.hasProperty("publishVersion")) {
5 pubVersion = project.publishVersion
6} else {
7 pubVersion = WPILibVersion.version
8}
9
10def baseArtifactId = 'wpilibc-cpp'
11def artifactGroupId = 'edu.wpi.first.wpilibc'
12def zipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_wpilibc-cpp_CLS'
13
14def outputsFolder = file("$project.buildDir/outputs")
15
16task cppSourcesZip(type: Zip) {
17 destinationDir = outputsFolder
18 baseName = zipBaseName
19 classifier = "sources"
20
21 from(licenseFile) {
22 into '/'
23 }
24
25 from('src/main/native/cpp') {
26 into '/'
27 }
28 from("$buildDir/generated/cpp") {
29 into '/'
30 }
31}
32
33cppSourcesZip.dependsOn generateCppVersion
34
35task cppHeadersZip(type: Zip) {
36 destinationDir = outputsFolder
37 baseName = zipBaseName
38 classifier = "headers"
39
40 from(licenseFile) {
41 into '/'
42 }
43
44 from('src/main/native/include') {
45 into '/'
46 }
47}
48
49build.dependsOn cppHeadersZip
50build.dependsOn cppSourcesZip
51
52addTaskToCopyAllOutputs(cppHeadersZip)
53addTaskToCopyAllOutputs(cppSourcesZip)
54
55model {
56 publishing {
57 def wpilibCTaskList = createComponentZipTasks($.components, ['wpilibc'], zipBaseName, Zip, project, includeStandardZipFormat)
58
59 publications {
60 cpp(MavenPublication) {
61 wpilibCTaskList.each {
62 artifact it
63 }
64
65 artifact cppHeadersZip
66 artifact cppSourcesZip
67
68 artifactId = baseArtifactId
69 groupId artifactGroupId
70 version pubVersion
71 }
72 }
73 }
74}