Generate combined Javadoc
Notes: - Now only generating a single module Javadoc task for the release variant. - Combined Javadoc now includes extensions. VP9 is excluded for now since it's failing for an unknown reason. Issue: #2139 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=150865589
This commit is contained in:
parent
88e74ef381
commit
382ba7ecf0
@ -47,3 +47,5 @@ def getBintrayRepo() {
|
||||
property('publicRepo').toBoolean()
|
||||
return publicRepo ? 'exoplayer' : 'exoplayer-test'
|
||||
}
|
||||
|
||||
apply from: 'javadoc_combined.gradle'
|
||||
|
@ -43,4 +43,4 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'Cronet extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
@ -36,4 +36,4 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'FFmpeg extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
@ -37,4 +37,4 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'FLAC extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
@ -31,7 +31,7 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'GVR extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'extension-gvr'
|
||||
|
@ -38,7 +38,7 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'OkHttp extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'extension-okhttp'
|
||||
|
@ -36,4 +36,4 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'Opus extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
@ -36,4 +36,4 @@ dependencies {
|
||||
ext {
|
||||
javadocTitle = 'VP9 extension'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
68
javadoc_combined.gradle
Normal file
68
javadoc_combined.gradle
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2017 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
class CombinedJavadocPlugin implements Plugin<Project> {
|
||||
|
||||
static final String TASK_NAME = "generateCombinedJavadoc"
|
||||
|
||||
@Override
|
||||
void apply(Project project) {
|
||||
project.gradle.projectsEvaluated {
|
||||
Set<Project> libraryModules = getLibraryModules(project)
|
||||
if (!libraryModules.isEmpty()) {
|
||||
String sdkDirectory = getSdkDirectory(libraryModules)
|
||||
project.task(TASK_NAME, type: Javadoc) {
|
||||
description = "Generates combined Javadoc."
|
||||
title = "ExoPlayer library"
|
||||
source = libraryModules.generateJavadoc.source
|
||||
classpath = project.files(libraryModules.generateJavadoc.classpath)
|
||||
destinationDir = project.file("$project.buildDir/docs/javadoc")
|
||||
options {
|
||||
links "http://docs.oracle.com/javase/7/docs/api/"
|
||||
linksOffline "https://developer.android.com/reference",
|
||||
"${sdkDirectory}/docs/reference"
|
||||
encoding = "UTF-8"
|
||||
}
|
||||
exclude "**/BuildConfig.java"
|
||||
exclude "**/R.java"
|
||||
destinationDir project.file("$project.buildDir/docs/javadoc")
|
||||
doLast {
|
||||
libraryModules.each { libraryModule ->
|
||||
project.copy {
|
||||
from "${libraryModule.projectDir}/src/main/javadoc"
|
||||
into "${project.buildDir}/docs/javadoc"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Returns Android library modules that declare a generateJavadoc task.
|
||||
private Set<Project> getLibraryModules(Project project) {
|
||||
project.subprojects.findAll {
|
||||
it.plugins.findPlugin("com.android.library") &&
|
||||
it.tasks.findByName("generateJavadoc")
|
||||
}
|
||||
}
|
||||
|
||||
// Returns the Android SDK directory given a set of Android library modules.
|
||||
private String getSdkDirectory(Set<Project> libraryModules) {
|
||||
// We can retrieve the Android SDK directory from any module.
|
||||
return libraryModules.iterator().next().android.sdkDirectory
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
apply plugin: CombinedJavadocPlugin
|
@ -12,18 +12,24 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
android.libraryVariants.all { variant ->
|
||||
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
|
||||
description "Generates Javadoc for $variant.name."
|
||||
title = javadocTitle
|
||||
def name = variant.buildType.name
|
||||
if (!name.equals("release")) {
|
||||
return; // Skip non-release builds.
|
||||
}
|
||||
task("generateJavadoc", type: Javadoc) {
|
||||
description = "Generates Javadoc for the ${javadocTitle}."
|
||||
title = "ExoPlayer ${javadocTitle}"
|
||||
source = variant.javaCompile.source
|
||||
classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
|
||||
classpath = files(variant.javaCompile.classpath.files,
|
||||
project.android.getBootClasspath())
|
||||
options {
|
||||
links "http://docs.oracle.com/javase/7/docs/api/"
|
||||
linksOffline "https://developer.android.com/reference","${android.sdkDirectory}/docs/reference"
|
||||
encoding = 'UTF-8'
|
||||
linksOffline "https://developer.android.com/reference",
|
||||
"${android.sdkDirectory}/docs/reference"
|
||||
encoding = "UTF-8"
|
||||
}
|
||||
exclude '**/BuildConfig.java'
|
||||
exclude '**/R.java'
|
||||
exclude "**/BuildConfig.java"
|
||||
exclude "**/R.java"
|
||||
doLast {
|
||||
copy {
|
||||
from "src/main/javadoc"
|
@ -46,9 +46,9 @@ dependencies {
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'Core'
|
||||
javadocTitle = 'Core module'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'exoplayer-core'
|
||||
|
@ -38,9 +38,9 @@ dependencies {
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'DASH'
|
||||
javadocTitle = 'DASH module'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'exoplayer-dash'
|
||||
|
@ -32,9 +32,9 @@ dependencies {
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'HLS'
|
||||
javadocTitle = 'HLS module'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'exoplayer-hls'
|
||||
|
@ -38,9 +38,9 @@ dependencies {
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'SmoothStreaming'
|
||||
javadocTitle = 'SmoothStreaming module'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'exoplayer-smoothstreaming'
|
||||
|
@ -29,9 +29,9 @@ dependencies {
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'UI'
|
||||
javadocTitle = 'UI module'
|
||||
}
|
||||
apply from: '../../library_javadoc.gradle'
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifact = 'exoplayer-ui'
|
||||
|
Loading…
x
Reference in New Issue
Block a user