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
|
||||
|
||||
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<out KotlinTarget>) = 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<KotlinJvmOptions>
|
||||
internal set
|
||||
|
||||
open fun target(body: KotlinWithJavaTarget<KotlinJvmOptions>.() -> Unit) = target.run(body)
|
||||
}
|
||||
|
||||
open class Kotlin2JsProjectExtension : KotlinSingleJavaTargetExtension() {
|
||||
override lateinit var target: KotlinWithJavaTarget<KotlinJsOptions>
|
||||
internal set
|
||||
|
||||
open fun target(body: KotlinWithJavaTarget<KotlinJsOptions>.() -> Unit) = target.run(body)
|
||||
}
|
||||
|
||||
open class KotlinJsProjectExtension : KotlinSingleTargetExtension() {
|
||||
override lateinit var target: KotlinOnlyTarget<KotlinJsCompilation>
|
||||
|
||||
open fun target(body: KotlinOnlyTarget<KotlinJsCompilation>.() -> 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<KotlinMultiplatformCommonOptions>
|
||||
internal set
|
||||
|
||||
open fun target(body: KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>.() -> 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 {
|
||||
|
||||
Reference in New Issue
Block a user