1*30877f79SAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project
2*30877f79SAndroid Build Coastguard Worker//
3*30877f79SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*30877f79SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*30877f79SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*30877f79SAndroid Build Coastguard Worker//
7*30877f79SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*30877f79SAndroid Build Coastguard Worker//
9*30877f79SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*30877f79SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*30877f79SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*30877f79SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*30877f79SAndroid Build Coastguard Worker// limitations under the License.
14*30877f79SAndroid Build Coastguard Workerapply from: "${buildscript.sourceFile.parentFile}/constants.gradle"
15*30877f79SAndroid Build Coastguard Workerapply from: "${buildscript.sourceFile.parentFile}/javadoc_util.gradle"
16*30877f79SAndroid Build Coastguard Worker
17*30877f79SAndroid Build Coastguard Workerandroid.libraryVariants.all { variant ->
18*30877f79SAndroid Build Coastguard Worker    def name = variant.buildType.name
19*30877f79SAndroid Build Coastguard Worker    if (name != "release") {
20*30877f79SAndroid Build Coastguard Worker        return // Skip non-release builds.
21*30877f79SAndroid Build Coastguard Worker    }
22*30877f79SAndroid Build Coastguard Worker    def allSourceDirs = variant.sourceSets.inject ([]) {
23*30877f79SAndroid Build Coastguard Worker        acc, val -> acc << val.javaDirectories
24*30877f79SAndroid Build Coastguard Worker    }
25*30877f79SAndroid Build Coastguard Worker    task("generateJavadoc", type: Javadoc) {
26*30877f79SAndroid Build Coastguard Worker        description = "Generates Javadoc for the ${javadocTitle}."
27*30877f79SAndroid Build Coastguard Worker        title = "ExoPlayer ${javadocTitle}"
28*30877f79SAndroid Build Coastguard Worker        source = allSourceDirs + "${buildDir}/generated/aidl_source_output_dir/"
29*30877f79SAndroid Build Coastguard Worker        options {
30*30877f79SAndroid Build Coastguard Worker            links "https://developer.android.com/reference",
31*30877f79SAndroid Build Coastguard Worker                  "https://guava.dev/releases/$project.ext.guavaVersion/api/docs"
32*30877f79SAndroid Build Coastguard Worker            encoding = "UTF-8"
33*30877f79SAndroid Build Coastguard Worker        }
34*30877f79SAndroid Build Coastguard Worker        options.addBooleanOption "-no-module-directories", true
35*30877f79SAndroid Build Coastguard Worker        exclude "**/BuildConfig.java"
36*30877f79SAndroid Build Coastguard Worker        exclude "**/R.java"
37*30877f79SAndroid Build Coastguard Worker        doFirst {
38*30877f79SAndroid Build Coastguard Worker            classpath =
39*30877f79SAndroid Build Coastguard Worker                files(
40*30877f79SAndroid Build Coastguard Worker                    variant.javaCompileProvider.get().classpath.files,
41*30877f79SAndroid Build Coastguard Worker                    project.android.getBootClasspath())
42*30877f79SAndroid Build Coastguard Worker        }
43*30877f79SAndroid Build Coastguard Worker        doLast {
44*30877f79SAndroid Build Coastguard Worker            copy {
45*30877f79SAndroid Build Coastguard Worker                from "src/main/javadoc"
46*30877f79SAndroid Build Coastguard Worker                into "$buildDir/docs/javadoc"
47*30877f79SAndroid Build Coastguard Worker            }
48*30877f79SAndroid Build Coastguard Worker            project.fixJavadoc()
49*30877f79SAndroid Build Coastguard Worker        }
50*30877f79SAndroid Build Coastguard Worker    }
51*30877f79SAndroid Build Coastguard Worker}
52