From 1e2436b1c13754b6c579ee4bc32ad95b96af91c7 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Mon, 12 Nov 2018 16:24:35 +0300 Subject: [PATCH] Make KotlinNativeCompile implement the <...>.dsl.KotlinCompile interface This is required for KotlinCompilation to be able to generically expose the Kotlin compile tasls. --- .../kotlin/gradle/tasks/KotlinNativeTasks.kt | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt index 36c0ccc23cf..95ac4596e6b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt @@ -12,7 +12,8 @@ import org.jetbrains.kotlin.compilerRunner.KonanCompilerRunner import org.jetbrains.kotlin.compilerRunner.KonanInteropRunner import org.jetbrains.kotlin.compilerRunner.konanHome import org.jetbrains.kotlin.compilerRunner.konanVersion -import org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinCompile import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings @@ -81,7 +82,7 @@ private fun FileCollection.filterOutPublishableInteropLibs(project: Project): Fi // endregion -open class KotlinNativeCompile : AbstractCompile() { +open class KotlinNativeCompile : AbstractCompile(), KotlinCompile { init { sourceCompatibility = "1.6" @@ -156,7 +157,15 @@ open class KotlinNativeCompile : AbstractCompile() { // endregion. // region DSL for compiler options - private inner class NativeCompilerOpts : KotlinCommonToolOptions { + private inner class NativeCompilerOpts : KotlinCommonOptions { + override var apiVersion: String? + get() = languageSettings?.apiVersion + set(value) { languageSettings!!.apiVersion = value } + + override var languageVersion: String? + get() = this@KotlinNativeCompile.languageVersion + set(value) { languageSettings!!.languageVersion = value } + override var allWarningsAsErrors: Boolean = false override var suppressWarnings: Boolean = false override var verbose: Boolean = false @@ -170,13 +179,13 @@ open class KotlinNativeCompile : AbstractCompile() { } @Internal - val kotlinOptions: KotlinCommonToolOptions = NativeCompilerOpts() + override val kotlinOptions: KotlinCommonOptions = NativeCompilerOpts() - fun kotlinOptions(fn: KotlinCommonToolOptions.() -> Unit) { + override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) { kotlinOptions.fn() } - fun kotlinOptions(fn: Closure<*>) { + override fun kotlinOptions(fn: Closure<*>) { fn.delegate = kotlinOptions fn.call() }