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:
+15
-6
@@ -12,7 +12,8 @@ import org.jetbrains.kotlin.compilerRunner.KonanCompilerRunner
|
|||||||
import org.jetbrains.kotlin.compilerRunner.KonanInteropRunner
|
import org.jetbrains.kotlin.compilerRunner.KonanInteropRunner
|
||||||
import org.jetbrains.kotlin.compilerRunner.konanHome
|
import org.jetbrains.kotlin.compilerRunner.konanHome
|
||||||
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
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.dsl.kotlinExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
|
import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings
|
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultCInteropSettings
|
||||||
@@ -81,7 +82,7 @@ private fun FileCollection.filterOutPublishableInteropLibs(project: Project): Fi
|
|||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
open class KotlinNativeCompile : AbstractCompile() {
|
open class KotlinNativeCompile : AbstractCompile(), KotlinCompile<KotlinCommonOptions> {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
sourceCompatibility = "1.6"
|
sourceCompatibility = "1.6"
|
||||||
@@ -156,7 +157,15 @@ open class KotlinNativeCompile : AbstractCompile() {
|
|||||||
// endregion.
|
// endregion.
|
||||||
|
|
||||||
// region DSL for compiler options
|
// 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 allWarningsAsErrors: Boolean = false
|
||||||
override var suppressWarnings: Boolean = false
|
override var suppressWarnings: Boolean = false
|
||||||
override var verbose: Boolean = false
|
override var verbose: Boolean = false
|
||||||
@@ -170,13 +179,13 @@ open class KotlinNativeCompile : AbstractCompile() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Internal
|
@Internal
|
||||||
val kotlinOptions: KotlinCommonToolOptions = NativeCompilerOpts()
|
override val kotlinOptions: KotlinCommonOptions = NativeCompilerOpts()
|
||||||
|
|
||||||
fun kotlinOptions(fn: KotlinCommonToolOptions.() -> Unit) {
|
override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) {
|
||||||
kotlinOptions.fn()
|
kotlinOptions.fn()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun kotlinOptions(fn: Closure<*>) {
|
override fun kotlinOptions(fn: Closure<*>) {
|
||||||
fn.delegate = kotlinOptions
|
fn.delegate = kotlinOptions
|
||||||
fn.call()
|
fn.call()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user