gradle: handling of noJdkAnnotations argument

This commit is contained in:
Leonid Shalupov
2013-04-01 15:43:56 +04:00
parent f81e3f6881
commit 7b0e3465c2
@@ -7,20 +7,13 @@ import org.jetbrains.kotlin.gradle.plugin.KSpec
import java.io.File import java.io.File
import org.gradle.api.GradleException import org.gradle.api.GradleException
import org.jetbrains.jet.cli.common.ExitCode import org.jetbrains.jet.cli.common.ExitCode
import org.gradle.api.Task
import org.gradle.api.tasks.SourceTask import org.gradle.api.tasks.SourceTask
import org.jetbrains.kotlin.doc.KDocArguments import org.jetbrains.kotlin.doc.KDocArguments
import org.jetbrains.kotlin.doc.KDocConfig
import java.util.HashMap import java.util.HashMap
import java.util.HashSet import java.util.HashSet
import org.jetbrains.kotlin.doc.KDocCompiler import org.jetbrains.kotlin.doc.KDocCompiler
import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskAction
import java.util.LinkedList
import com.google.common.io.Resources
import java.net.URL
import com.google.common.io.Files
import org.gradle.api.file.SourceDirectorySet import org.gradle.api.file.SourceDirectorySet
import com.google.common.base.Joiner
import java.util.ArrayList import java.util.ArrayList
import org.apache.commons.io.FilenameUtils import org.apache.commons.io.FilenameUtils
import org.jetbrains.jet.cli.common.messages.MessageCollector import org.jetbrains.jet.cli.common.messages.MessageCollector
@@ -28,8 +21,6 @@ import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation
import org.gradle.api.logging.Logger import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging import org.gradle.api.logging.Logging
import org.apache.commons.io.FileUtils
import java.io.IOException
import org.apache.commons.lang.StringUtils import org.apache.commons.lang.StringUtils
import org.gradle.api.initialization.dsl.ScriptHandler import org.gradle.api.initialization.dsl.ScriptHandler
@@ -41,11 +32,6 @@ public open class KotlinCompile(): AbstractCompile() {
public val kotlinOptions: K2JVMCompilerArguments = K2JVMCompilerArguments(); public val kotlinOptions: K2JVMCompilerArguments = K2JVMCompilerArguments();
{
kotlinOptions.noStdlib = true
kotlinOptions.noJdkAnnotations = true
}
// override setSource to track source directory sets // override setSource to track source directory sets
override fun setSource(source: Any?) { override fun setSource(source: Any?) {
srcDirsRoots.clear() srcDirsRoots.clear()
@@ -78,7 +64,6 @@ public open class KotlinCompile(): AbstractCompile() {
override fun compile() { override fun compile() {
val args = kotlinOptions val args = kotlinOptions
val javaSrcRoots = HashSet<File>() val javaSrcRoots = HashSet<File>()
@@ -113,9 +98,15 @@ public open class KotlinCompile(): AbstractCompile() {
args.setClasspath(effectiveClassPath) args.setClasspath(effectiveClassPath)
} }
args.outputDir = if (StringUtils.isEmpty(kotlinOptions.outputDir)) { getDestinationDir()?.getPath() } else { kotlinOptions.outputDir }
val embeddedAnnotations = getAnnotations() val embeddedAnnotations = getAnnotations()
args.outputDir =if (StringUtils.isEmpty(kotlinOptions.outputDir)) { getDestinationDir()?.getPath() } else { kotlinOptions.outputDir } val userAnnotations = (kotlinOptions.annotations ?: "").split(File.pathSeparatorChar).toList()
args.annotations = if (StringUtils.isEmpty(kotlinOptions.annotations)) { embeddedAnnotations.getPath() } else { kotlinOptions.annotations } val allAnnotations = if (kotlinOptions.noJdkAnnotations) userAnnotations else userAnnotations.plus(embeddedAnnotations.getPath())
args.annotations = allAnnotations.makeString(File.pathSeparator)
args.noStdlib = true
args.noJdkAnnotations = true
val messageCollector = GradleMessageCollector(logger) val messageCollector = GradleMessageCollector(logger)
val exitCode = compiler.exec(messageCollector, args) val exitCode = compiler.exec(messageCollector, args)