1a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam/** 2a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam * A helper gradle file to generate documentation using doclava. 3a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam * Include this file using `apply from` in the gradle build file. This will generate new tasks 4a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam * "javadoc<Variant>" which will generate javadocs for that target. 5a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam */ 6a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 7a211294e1caba648822d11f8935593b6ca2b9279Maurice Lamimport com.android.internal.doclava.DoclavaJavadocOptionFileOption 8a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 9a211294e1caba648822d11f8935593b6ca2b9279Maurice Lamdef DOCSDIR = "$rootDir/frameworks/opt/setupwizard/tools/docs" 10a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 11a211294e1caba648822d11f8935593b6ca2b9279Maurice Lamandroid.libraryVariants.all { variant -> 12a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam if (variant.buildType.name.equals(com.android.builder.core.BuilderConstants.DEBUG)) { 13a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam return; // Skip debug builds. 14a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam } 15a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam def suffix = variant.name.capitalize() 16a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 17a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam def javadocTask = project.tasks.create(name: "javadoc${suffix}", type: Javadoc) { 18a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam title = null 19a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam source variant.javaCompile.source 20a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam classpath = files(variant.javaCompile.classpath.files) + files( 21a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar") 22a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam exclude '**/R.java' 23a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam exclude '**/R.html', '**/R.*.html' 24a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam exclude '**/BuildConfig.java' 25a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 26a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam options { 27a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam bootClasspath = files(android.getBootClasspath()).asType(List) 28a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam doclet = 'com.google.doclava.Doclava' 29a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam docletpath = files("$DOCSDIR/doclava.jar", "$DOCSDIR/jsilver.jar").asType(List) 30a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 31a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam addOption(new DoclavaJavadocOptionFileOption('offlinemode')) 32a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam addOption(new DoclavaJavadocOptionFileOption('federate')) 33a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam .setValue(['Android', 'http://developer.android.com']) 34a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 35a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam addOption(new DoclavaJavadocOptionFileOption('federationapi')) 36a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam .setValue(['Android', file("$DOCSDIR/android-22.txt").canonicalPath]) 37a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam addStringOption('templatedir', 38a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam file("$rootDir/build/tools/droiddoc/templates-sdk-dev").canonicalPath) 39a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam } 40a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 41a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam dependsOn(variant.assemble) 42a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam 43a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam doLast { 44a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam println "Docs generated: file://${project.docsDir}/javadoc/reference/index.html" 45a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam } 46a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam } 47a211294e1caba648822d11f8935593b6ca2b9279Maurice Lam} 48