[Gradle] Add deprecated access to sourceSets container inside KotlinTarget
This should keep compatability with user scripts that for any reason tried to configure 'sourceSets' container inside KotlinTarget, but keep such users warned. ^KT-57292 In Progress
This commit is contained in:
committed by
Space Team
parent
36e85fec95
commit
2af60a5e27
@@ -1161,6 +1161,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTarget
|
||||
public abstract fun getPreset ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetPreset;
|
||||
public abstract fun getPublishable ()Z
|
||||
public abstract fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
|
||||
public abstract fun getSourceSets ()Lorg/gradle/api/NamedDomainObjectContainer;
|
||||
public abstract fun getSourcesElementsConfigurationName ()Ljava/lang/String;
|
||||
public abstract fun getTargetName ()Ljava/lang/String;
|
||||
public abstract fun getUseDisambiguationClassifierAsSourceSetNamePrefix ()Z
|
||||
|
||||
+7
-1
@@ -17,7 +17,6 @@ import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.jetbrains.kotlin.gradle.PRESETS_API_IS_DEPRECATED_MESSAGE
|
||||
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinGradlePluginDsl
|
||||
@@ -81,6 +80,13 @@ interface KotlinTarget : Named, HasAttributes, HasProject, HasMutableExtras {
|
||||
fun compilerOptions(configure: Action<KotlinCommonCompilerOptions>) {
|
||||
throw UnsupportedOperationException("Kotlin target level compiler options DSL is not available in this release!")
|
||||
}
|
||||
|
||||
@Deprecated(
|
||||
"Accessing 'sourceSets' container on the Kotlin target level DSL is deprecated. " +
|
||||
"Consider configuring 'sourceSets' on the Kotlin extension level.",
|
||||
level = DeprecationLevel.WARNING
|
||||
)
|
||||
val sourceSets: NamedDomainObjectContainer<KotlinSourceSet>
|
||||
}
|
||||
|
||||
interface KotlinTargetWithTests<E : KotlinExecution.ExecutionSource, T : KotlinTargetTestRun<E>> : KotlinTarget {
|
||||
|
||||
@@ -768,6 +768,7 @@ public class org/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKo
|
||||
public final fun getRuntimeElementsConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||
public fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
|
||||
public final fun getRuntimeElementsPublishedConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||
public fun getSourceSets ()Lorg/gradle/api/NamedDomainObjectContainer;
|
||||
public final fun getSourcesElementsConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||
public fun getSourcesElementsConfigurationName ()Ljava/lang/String;
|
||||
public final fun getSourcesElementsPublishedConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||
|
||||
+12
-2
@@ -5,16 +5,18 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent
|
||||
import org.jetbrains.kotlin.gradle.plugin.await
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinTargetImpl
|
||||
import org.jetbrains.kotlin.gradle.utils.extrasStoredFuture
|
||||
import org.jetbrains.kotlin.gradle.utils.getByType
|
||||
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
|
||||
|
||||
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||
@@ -24,6 +26,14 @@ internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||
@InternalKotlinGradlePluginApi
|
||||
override val components: Set<KotlinTargetSoftwareComponent>
|
||||
fun onPublicationCreated(publication: MavenPublication)
|
||||
|
||||
@Deprecated(
|
||||
"Accessing 'sourceSets' container on the Kotlin target level DSL is deprecated. " +
|
||||
"Consider configuring 'sourceSets' on the Kotlin extension level.",
|
||||
level = DeprecationLevel.WARNING
|
||||
)
|
||||
override val sourceSets: NamedDomainObjectContainer<KotlinSourceSet>
|
||||
get() = project.extensions.getByType<KotlinProjectExtension>().sourceSets
|
||||
}
|
||||
|
||||
internal val KotlinTarget.internal: InternalKotlinTarget
|
||||
|
||||
+21
@@ -7,14 +7,35 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.unitTests
|
||||
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.util.assertAllImplementationsAlsoImplement
|
||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||
import org.jetbrains.kotlin.gradle.util.kotlin
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class InternalKotlinTargetTest {
|
||||
@Test
|
||||
fun `test - all implementations of KotlinTarget - implement InternalKotlinTarget`() {
|
||||
assertAllImplementationsAlsoImplement(KotlinTarget::class, InternalKotlinTarget::class)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `KotlinTarget sourceSets are equal to extension sourceSets`() {
|
||||
val project = buildProjectWithMPP {
|
||||
kotlin {
|
||||
jvm()
|
||||
}
|
||||
}
|
||||
|
||||
project.evaluate()
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
assertEquals(
|
||||
project.multiplatformExtension.sourceSets,
|
||||
project.multiplatformExtension.jvm().sourceSets
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user