diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt index 7e085e5d360..892d2411816 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt @@ -16,9 +16,11 @@ package org.jetbrains.kotlin.gradle.dsl +import groovy.lang.Closure import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project import org.gradle.api.internal.plugins.DslObject +import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget @@ -61,6 +63,8 @@ open class KotlinProjectExtension { abstract class KotlinSingleTargetExtension : KotlinProjectExtension() { abstract val target: KotlinTarget + + open fun target(body: Closure) = ConfigureUtil.configure(body, target) } abstract class KotlinSingleJavaTargetExtension : KotlinSingleTargetExtension() { @@ -70,16 +74,22 @@ abstract class KotlinSingleJavaTargetExtension : KotlinSingleTargetExtension() { open class KotlinJvmProjectExtension : KotlinSingleJavaTargetExtension() { override lateinit var target: KotlinWithJavaTarget internal set + + open fun target(body: KotlinWithJavaTarget.() -> Unit) = target.run(body) } open class Kotlin2JsProjectExtension : KotlinSingleJavaTargetExtension() { override lateinit var target: KotlinWithJavaTarget internal set + + open fun target(body: KotlinWithJavaTarget.() -> Unit) = target.run(body) } open class KotlinJsProjectExtension : KotlinSingleTargetExtension() { override lateinit var target: KotlinOnlyTarget + open fun target(body: KotlinOnlyTarget.() -> Unit) = target.run(body) + @Deprecated( "Needed for IDE import using the MPP import mechanism", level = DeprecationLevel.HIDDEN @@ -91,11 +101,15 @@ open class KotlinJsProjectExtension : KotlinSingleTargetExtension() { open class KotlinCommonProjectExtension : KotlinSingleJavaTargetExtension() { override lateinit var target: KotlinWithJavaTarget internal set + + open fun target(body: KotlinWithJavaTarget.() -> Unit) = target.run(body) } open class KotlinAndroidProjectExtension : KotlinSingleTargetExtension() { override lateinit var target: KotlinAndroidTarget internal set + + open fun target(body: KotlinAndroidTarget.() -> Unit) = target.run(body) } open class ExperimentalExtension {