blob: 9f6995f2228e56310a3443ebbeeb716146c72782 [file] [log] [blame]
Brian Silverman41cdd3e2019-01-19 19:48:58 -08001plugins {
2 id 'java'
3 id "org.ysb33r.doxygen" version "0.5"
4}
5
6evaluationDependsOn(':wpiutil')
7evaluationDependsOn(':ntcore')
8evaluationDependsOn(':cscore')
9evaluationDependsOn(':hal')
10evaluationDependsOn(':cameraserver')
11evaluationDependsOn(':wpilibc')
12evaluationDependsOn(':wpilibj')
13
14def pubVersion = ''
15if (project.hasProperty("publishVersion")) {
16 pubVersion = project.publishVersion
17} else {
18 pubVersion = WPILibVersion.version
19}
20
21def baseArtifactIdCpp = 'documentation'
22def artifactGroupIdCpp = 'edu.wpi.first.wpilibc'
23def zipBaseNameCpp = '_GROUP_edu_wpi_first_wpilibc_ID_documentation_CLS'
24
25def baseArtifactIdJava = 'documentation'
26def artifactGroupIdJava = 'edu.wpi.first.wpilibj'
27def zipBaseNameJava = '_GROUP_edu_wpi_first_wpilibj_ID_documentation_CLS'
28
29def outputsFolder = file("$project.buildDir/outputs")
30
31def cppProjectZips = []
32
33cppProjectZips.add(project(':hal').cppHeadersZip)
34cppProjectZips.add(project(':wpiutil').cppHeadersZip)
35cppProjectZips.add(project(':ntcore').cppHeadersZip)
36cppProjectZips.add(project(':cscore').cppHeadersZip)
37cppProjectZips.add(project(':cameraserver').cppHeadersZip)
38cppProjectZips.add(project(':wpilibc').cppHeadersZip)
39
40doxygen {
41 executables {
42 doxygen version : '1.8.8'
43 }
44}
45
46doxygen {
47 generate_html true
48
49 cppProjectZips.each {
50 dependsOn it
51 source it.source
52 }
53
54 extension_mapping 'inc=C++'
55 project_name 'WPILibC++'
56 project_number pubVersion
57 javadoc_autobrief true
58 recursive true
59 quiet true
60 warnings false
61 warn_if_doc_error false
62 warn_no_paramdoc false
63 warn_format false
64 warn_logfile false
65 warn_if_undocumented false
66 generate_latex false
67 use_mathjax true
68 html_timestamp true
69 generate_treeview true
70}
71
72tasks.register("zipCppDocs", Zip) {
73 baseName = zipBaseNameCpp
74 destinationDir = outputsFolder
75 dependsOn doxygen
76 from ("$buildDir/docs/doxygen/html")
77 into '/'
78}
79
80
81// Java
82configurations {
83 javaSource {
84 transitive false
85 }
86}
87
88ext {
89 sharedCvConfigs = [:]
90 staticCvConfigs = [:]
91 useJava = true
92 useCpp = false
93 skipDev = true
94 useDocumentation = true
95}
96
97apply from: "${rootDir}/shared/opencv.gradle"
98
99task generateJavaDocs(type: Javadoc) {
100 options.links("https://docs.oracle.com/javase/8/docs/api/")
101 options.addStringOption "tag", "pre:a:Pre-Condition"
102 options.addStringOption('Xdoclint:accessibility,html,missing,reference,syntax')
103 options.addBooleanOption('html5', true)
104 dependsOn project(':wpilibj').generateJavaVersion
105 dependsOn project(':hal').generateUsageReporting
106 source project(':hal').sourceSets.main.java
107 source project(':wpiutil').sourceSets.main.java
108 source project(':cscore').sourceSets.main.java
109 source project(':ntcore').sourceSets.main.java
110 source project(':wpilibj').sourceSets.main.java
111 source project(':cameraserver').sourceSets.main.java
112 source configurations.javaSource.collect { zipTree(it) }
113 include '**/*.java'
114 failOnError = true
115}
116
117tasks.register("zipJavaDocs", Zip) {
118 baseName = zipBaseNameJava
119 destinationDir = outputsFolder
120 dependsOn generateJavaDocs
121 from ("$buildDir/docs/javadoc")
122 into '/'
123}
124
125addTaskToCopyAllOutputs(zipCppDocs)
126addTaskToCopyAllOutputs(zipJavaDocs)
127
128build.dependsOn zipCppDocs
129build.dependsOn zipJavaDocs
130
131apply plugin: 'maven-publish'
132
133publishing {
134 publications {
135 java(MavenPublication) {
136 artifact zipJavaDocs
137
138 artifactId = "${baseArtifactIdJava}"
139 groupId artifactGroupIdJava
140 version pubVersion
141 }
142 cpp(MavenPublication) {
143 artifact zipCppDocs
144
145 artifactId = "${baseArtifactIdCpp}"
146 groupId artifactGroupIdCpp
147 version pubVersion
148 }
149 }
150}