From 8ebd63ee969f16719a671b49472bf6f837c87b94 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 5 Feb 2015 21:32:08 +0300 Subject: [PATCH] Update Gradle plugin --- .../jetbrains/kotlin/gradle/tasks/Tasks.kt | 33 +------------------ .../kotlin/gradle/plugin/KotlinPlugin.kt | 16 +++++---- 2 files changed, 11 insertions(+), 38 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 362a296cda9..3806f5bb81b 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -30,6 +30,7 @@ import com.intellij.ide.highlighter.JavaFileType import org.jetbrains.kotlin.idea.JetFileType import org.jetbrains.kotlin.utils.LibraryUtils import com.intellij.openapi.util.io.FileUtil +import org.apache.commons.io.FilenameUtils val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations" @@ -49,38 +50,6 @@ abstract class AbstractKotlinCompile() : AbstractCo var compilerPluginClasspaths: Array = array() var compilerPluginArguments: Array = array() - // override setSource to track source directory sets - override fun setSource(source: Any?) { - srcDirsSources.clear() - if (source is SourceDirectorySet) { - srcDirsSources.add(source) - } - super.setSource(source) - } - - // override source to track source directory sets - override fun source(vararg sources: Any?): SourceTask? { - for (source in sources) { - if (source is SourceDirectorySet) { - srcDirsSources.add(source) - } - } - return super.source(sources) - } - - fun findSrcDirRoot(file: File): File? { - val absPath = file.getAbsolutePath() - for (source in srcDirsSources) { - for (root in source.getSrcDirs()) { - val rootAbsPath = root.getAbsolutePath() - if (FilenameUtils.directoryContains(rootAbsPath, absPath)) { - return root - } - } - } - return null - } - [TaskAction] override fun compile() { getLogger().debug("Starting ${javaClass} task") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index f53f8cce516..d3f13583468 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -37,10 +37,7 @@ import kotlin.properties.Delegates import org.gradle.api.tasks.Delete import groovy.lang.Closure import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider -import org.jetbrains.kotlin.compiler.plugin.CliOption -import org.jetbrains.kotlin.android.AndroidCommandLineProcessor import java.util.ServiceLoader -import org.jetbrains.kotlin.compiler.plugin.getPluginOptionString val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations" @@ -454,7 +451,12 @@ private class SubpluginEnvironment( val subplugins: List ) { - fun addSubpluginArguments(project: Project, compileTask: KotlinCompile) { + private fun AbstractCompile.setKotlinTaskProperty(methodName: String, value: Array) { + val function = javaClass.getMethod(methodName, javaClass>()) + function.invoke(this, value) + } + + fun addSubpluginArguments(project: Project, compileTask: AbstractCompile) { val realPluginClasspaths = arrayListOf() val pluginArguments = arrayListOf() @@ -463,14 +465,16 @@ private class SubpluginEnvironment( if (args != null) { realPluginClasspaths.addAll(subpluginClasspaths[subplugin]) for (arg in args) { + //TODO: fix (getPluginOptionString is in plugin-api) + fun getPluginOptionString(pluginId: String, key: String, value: String) = "plugin:$pluginId:$key=$value" val option = getPluginOptionString(subplugin.getPluginName(), arg.key, arg.value) pluginArguments.add(option) } } } - compileTask.compilerPluginClasspaths = realPluginClasspaths.copyToArray() - compileTask.compilerPluginArguments = pluginArguments.copyToArray() + compileTask.setKotlinTaskProperty("setCompilerPluginClasspaths", realPluginClasspaths.copyToArray()) + compileTask.setKotlinTaskProperty("setCompilerPluginArguments", pluginArguments.copyToArray()) } }