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.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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user