Gradle: introduce "target" DSL function for single platform plugins
This commit is contained in:
+14
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.dsl
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
import groovy.lang.Closure
|
||||||
import org.gradle.api.NamedDomainObjectContainer
|
import org.gradle.api.NamedDomainObjectContainer
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.internal.plugins.DslObject
|
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.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||||
@@ -61,6 +63,8 @@ open class KotlinProjectExtension {
|
|||||||
|
|
||||||
abstract class KotlinSingleTargetExtension : KotlinProjectExtension() {
|
abstract class KotlinSingleTargetExtension : KotlinProjectExtension() {
|
||||||
abstract val target: KotlinTarget
|
abstract val target: KotlinTarget
|
||||||
|
|
||||||
|
open fun target(body: Closure<out KotlinTarget>) = ConfigureUtil.configure(body, target)
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KotlinSingleJavaTargetExtension : KotlinSingleTargetExtension() {
|
abstract class KotlinSingleJavaTargetExtension : KotlinSingleTargetExtension() {
|
||||||
@@ -70,16 +74,22 @@ abstract class KotlinSingleJavaTargetExtension : KotlinSingleTargetExtension() {
|
|||||||
open class KotlinJvmProjectExtension : KotlinSingleJavaTargetExtension() {
|
open class KotlinJvmProjectExtension : KotlinSingleJavaTargetExtension() {
|
||||||
override lateinit var target: KotlinWithJavaTarget<KotlinJvmOptions>
|
override lateinit var target: KotlinWithJavaTarget<KotlinJvmOptions>
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
open fun target(body: KotlinWithJavaTarget<KotlinJvmOptions>.() -> Unit) = target.run(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
open class Kotlin2JsProjectExtension : KotlinSingleJavaTargetExtension() {
|
open class Kotlin2JsProjectExtension : KotlinSingleJavaTargetExtension() {
|
||||||
override lateinit var target: KotlinWithJavaTarget<KotlinJsOptions>
|
override lateinit var target: KotlinWithJavaTarget<KotlinJsOptions>
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
open fun target(body: KotlinWithJavaTarget<KotlinJsOptions>.() -> Unit) = target.run(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
|
open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
|
||||||
override lateinit var target: KotlinOnlyTarget<KotlinJsCompilation>
|
override lateinit var target: KotlinOnlyTarget<KotlinJsCompilation>
|
||||||
|
|
||||||
|
open fun target(body: KotlinOnlyTarget<KotlinJsCompilation>.() -> Unit) = target.run(body)
|
||||||
|
|
||||||
@Deprecated(
|
@Deprecated(
|
||||||
"Needed for IDE import using the MPP import mechanism",
|
"Needed for IDE import using the MPP import mechanism",
|
||||||
level = DeprecationLevel.HIDDEN
|
level = DeprecationLevel.HIDDEN
|
||||||
@@ -91,11 +101,15 @@ open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
|
|||||||
open class KotlinCommonProjectExtension : KotlinSingleJavaTargetExtension() {
|
open class KotlinCommonProjectExtension : KotlinSingleJavaTargetExtension() {
|
||||||
override lateinit var target: KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>
|
override lateinit var target: KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
open fun target(body: KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>.() -> Unit) = target.run(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinAndroidProjectExtension : KotlinSingleTargetExtension() {
|
open class KotlinAndroidProjectExtension : KotlinSingleTargetExtension() {
|
||||||
override lateinit var target: KotlinAndroidTarget
|
override lateinit var target: KotlinAndroidTarget
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
open fun target(body: KotlinAndroidTarget.() -> Unit) = target.run(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
open class ExperimentalExtension {
|
open class ExperimentalExtension {
|
||||||
|
|||||||
Reference in New Issue
Block a user