blob: fc91a517d8f6f27c746d8396bbd59c047ba68c86 [file] [log] [blame]
task doc(dependsOn: [javadoc, groovydoc, 'docGDK']) {
ext.footer = "Copyright © 2003-2012 The Codehaus. All rights reserved."
ext.title = "Groovy ${groovyVersion}"
}
def javadocSpec = {
maxMemory = javaDoc_mx
project.configure(options) {
windowTitle = doc.title
docTitle = doc.title
encoding = "ISO-8859-1"
author = true
version = true
overview = rootProject.file("src/main/overviewj.html")
footer = doc.footer
source = rootProject.useIndy()?'1.7':'1.5'
links("http://docs.oracle.com/javase/6/docs/api/", "http://evgeny-goldin.org/javadoc/ant/api/",
"http://commons.apache.org/cli/api-release", "http://kentbeck.github.com/junit/javadoc/latest/",
"http://docs.oracle.com/javaee/6/api/", "http://www.antlr2.org/javadoc")
}
}
def groovydocSpec = {
use = true
if (project != rootProject) source = project.sourceSets.main.allSource
classpath = javadoc.classpath
ext.windowtitle = doc.title
ext.doctitle = doc.title
header = doc.title
footer = doc.footer
overview = rootProject.file("src/main/overview.html")
includePrivate = false
link "http://docs.oracle.com/javaee/6/api/", "javax.servlet.", "javax.management."
link "http://docs.oracle.com/javase/6/docs/api/", "java.", "org.xml.", "javax.", "org.w3c."
link "http://evgeny-goldin.org/javadoc/ant/api/", "org.apache.ant.", "org.apache.tools.ant."
link "http://kentbeck.github.com/junit/javadoc/latest/", "org.junit.", "junit."
link "http://www.antlr2.org/javadoc", "antlr."
link "http://commons.apache.org/cli/api-release", "org.apache.commons.cli."
}
allprojects {
javadoc javadocSpec
groovydoc groovydocSpec
}
// Root project has an extra 'all' javadoc task
task javadocAll(type:Javadoc) << javadocSpec
javadocAll {
destinationDir = new File(buildDir,'alljavadoc')
source = javadoc.source
classpath = javadoc.classpath
subprojects.each { sp ->
source += sp.javadoc.source
classpath += sp.javadoc.classpath
}
}
// Root project has an extra 'all' groovydoc task
task groovydocAll(type:Groovydoc) << groovydocSpec
groovydocAll {
dependsOn( { project(':groovy-groovydoc').classes })
dependsOn( { project(':groovy-docgenerator').classes })
destinationDir = new File(buildDir,'allgroovydoc')
source = groovydoc.source
classpath = groovydoc.classpath
groovyClasspath = groovydoc.groovyClasspath
subprojects.each { sp ->
source += sp.groovydoc.source
classpath += sp.groovydoc.classpath
groovyClasspath += sp.groovydoc.groovyClasspath
}
}
// when docgenerator is run by the build, it requires a groovy-release-info file
// but the file is only generated by the 'jar' task, so as a workaround, we copy
// it into the docgenerator classes
task docProjectVersionInfo(type: Copy) {
destinationDir = file("${project(':groovy-docgenerator').buildDir}/classes/main")
into('META-INF') {
from('src/main/META-INF/groovy-release-info.properties') {
filter(rootProject.propertiesFilter, org.apache.tools.ant.filters.ReplaceTokens)
}
}
}
task docGDK {
dependsOn([project(':groovy-groovydoc'), project(':groovy-docgenerator')]*.classes)
dependsOn docProjectVersionInfo
ext.destinationDir = "$buildDir/html/groovy-jdk"
inputs.files sourceSets.tools.runtimeClasspath
outputs.dir destinationDir
doLast {task ->
try {
ant {
java(classname: "org.codehaus.groovy.tools.DocGenerator", fork: "true", failonerror: "true",
classpath: (configurations.tools + groovydoc.groovyClasspath).asPath,
errorproperty: 'edr',
outputproperty: 'odr') {
arg(value: "org.codehaus.groovy.runtime.DefaultGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.DefaultGroovyStaticMethods")
arg(value: "org.codehaus.groovy.runtime.DateGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.EncodingGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.IOGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.ProcessGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.ResourceGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.SocketGroovyMethods")
// arg(value: "org.codehaus.groovy.runtime.SqlGroovyMethods")
arg(value: "org.codehaus.groovy.runtime.StringGroovyMethods")
// arg(value: "org.codehaus.groovy.runtime.SwingGroovyMethods")
// arg(value: "org.codehaus.groovy.runtime.XmlGroovyMethods")
arg(value: "org.codehaus.groovy.vmplugin.v5.PluginDefaultGroovyMethods")
arg(value: "org.codehaus.groovy.vmplugin.v6.PluginDefaultGroovyMethods")
arg(value: "org.codehaus.groovy.vmplugin.v6.PluginStaticGroovyMethods")
}
}
} finally {
if (ant.properties.odr) {
logger.info "Out: " + ant.properties.odr
}
if (ant.properties.edr) {
logger.error "Err: " + ant.properties.edr
}
}
copy {
into task.destinationDir
from "src/tools/org/codehaus/groovy/tools/groovy.ico", "src/tools/org/codehaus/groovy/tools/stylesheet.css"
}
}
}