From dafb6f8b3c7c9faa6e9b0ab802a591b1ed946797 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 25 Jan 2017 14:12:35 +0300 Subject: [PATCH] Kotlin Gradle Plugin: Provide serialized list of compiler arguments in compilation tasks --- .../org/jetbrains/kotlin/gradle/dsl/KotlinCompile.kt | 6 +++++- .../kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCompile.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCompile.kt index 02442bd5469..aae749f6d01 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCompile.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCompile.kt @@ -19,7 +19,11 @@ package org.jetbrains.kotlin.gradle.dsl import groovy.lang.Closure import org.gradle.api.Task -interface KotlinCompile : Task { +interface CompilerArgumentAware { + val serializedCompilerArguments: List +} + +interface KotlinCompile : Task, CompilerArgumentAware { val kotlinOptions: T fun kotlinOptions(fn: T.() -> Unit) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 3087db447a6..60010444bce 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -52,9 +52,16 @@ const val ANNOTATIONS_PLUGIN_NAME = "org.jetbrains.kotlin.kapt" const val KOTLIN_BUILD_DIR_NAME = "kotlin" const val USING_EXPERIMENTAL_INCREMENTAL_MESSAGE = "Using experimental kotlin incremental compilation" -abstract class AbstractKotlinCompile() : AbstractCompile() { +abstract class AbstractKotlinCompile() : AbstractCompile(), CompilerArgumentAware { abstract protected fun populateCompilerArguments(): T + override val serializedCompilerArguments: List + get() { + val arguments = populateCompilerArguments() + arguments.setupCommonCompilerArgs() + return ArgumentUtils.convertArgumentsToStringList(arguments) + } + // indicates that task should compile kotlin incrementally if possible // it's not possible when IncrementalTaskInputs#isIncremental returns false (i.e first build) var incremental: Boolean = false