Make KotlinNativeCompile implement the <...>.dsl.KotlinCompile interface

This is required for KotlinCompilation to be able to generically expose
the Kotlin compile tasls.
This commit is contained in:
Sergey Igushkin
2018-11-12 16:24:35 +03:00
parent ae5d59caf0
commit 1e2436b1c1
@@ -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<KotlinCommonOptions> {
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()
}