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