|
| 1 | +import android.support.doclava.DoclavaMultilineJavadocOptionFileOption |
1 | 2 | import com.android.build.gradle.internal.coverage.JacocoReportTask
|
2 | 3 | import com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask
|
3 | 4 |
|
@@ -253,24 +254,50 @@ void setApiModuleDependencies(Project subProject, DependencyHandler handler, Lis
|
253 | 254 | }
|
254 | 255 | }
|
255 | 256 |
|
256 |
| -void registerForDocs(Project subProject, releaseVariant) { |
257 |
| - rootProject.generateApi.dependsOn releaseVariant.javaCompile |
258 |
| - rootProject.generateApi.source { |
| 257 | +void registerForDocsTask(Task task, Project subProject, releaseVariant) { |
| 258 | + task.dependsOn releaseVariant.javaCompile |
| 259 | + task.source { |
259 | 260 | def buildConfig = fileTree(releaseVariant.getGenerateBuildConfig().sourceOutputDir)
|
260 | 261 | return releaseVariant.javaCompile.source.minus(buildConfig) +
|
261 | 262 | fileTree(releaseVariant.aidlCompile.sourceOutputDir) +
|
262 | 263 | fileTree(releaseVariant.outputs[0].processResources.sourceOutputDir)
|
263 | 264 | }
|
264 |
| - rootProject.generateApi.classpath += files(releaseVariant.javaCompile.classpath) + |
| 265 | + task.classpath += files(releaseVariant.javaCompile.classpath) + |
265 | 266 | files(releaseVariant.javaCompile.destinationDir)
|
266 | 267 |
|
267 | 268 | if (subProject.hasProperty('allSS')) {
|
268 | 269 | subProject.allSS.each { ss ->
|
269 |
| - rootProject.generateApi.source ss.java |
| 270 | + task.source ss.java |
270 | 271 | }
|
271 | 272 | }
|
272 | 273 | }
|
273 | 274 |
|
| 275 | +// Generates online docs. |
| 276 | +task generateDocs(type: DoclavaTask, dependsOn: configurations.doclava) { |
| 277 | + docletpath = configurations.doclava.resolve() |
| 278 | + destinationDir = new File(project.docsDir, "online") |
| 279 | + |
| 280 | + // Base classpath is Android SDK, sub-projects add their own. |
| 281 | + classpath = getAndroidPrebuilt(gradle.ext.currentSdk) |
| 282 | + |
| 283 | + def hdfOption = new DoclavaMultilineJavadocOptionFileOption('hdf') |
| 284 | + hdfOption.add( |
| 285 | + ['android.whichdoc', 'online'], |
| 286 | + ['android.hasSamples', 'true']); |
| 287 | + |
| 288 | + options { |
| 289 | + addStringOption "templatedir", |
| 290 | + "${project.rootDir}/../../build/tools/droiddoc/templates-sdk" |
| 291 | + addStringOption "federate Android", "http://developer.android.com" |
| 292 | + addStringOption "federationapi Android", |
| 293 | + "${project.rootDir}/../../prebuilts/sdk/api/24.txt" |
| 294 | + addStringOption "stubpackages", "android.support.*" |
| 295 | + addStringOption "samplesdir", "${project.rootDir}/samples" |
| 296 | + addOption hdfOption |
| 297 | + } |
| 298 | + |
| 299 | + exclude '**/BuildConfig.java' |
| 300 | +} |
274 | 301 |
|
275 | 302 | // Generates API files.
|
276 | 303 | task generateApi(type: DoclavaTask, dependsOn: configurations.doclava) {
|
@@ -462,7 +489,8 @@ subprojects {
|
462 | 489 | && !(p.android.hasProperty('noDocs') && p.android.noDocs)) {
|
463 | 490 | p.android.libraryVariants.all { v ->
|
464 | 491 | if (v.name == 'release') {
|
465 |
| - registerForDocs(p, v) |
| 492 | + registerForDocsTask(rootProject.generateDocs, p, v) |
| 493 | + registerForDocsTask(rootProject.generateApi, p, v) |
466 | 494 | }
|
467 | 495 | }
|
468 | 496 | }
|
|
0 commit comments