[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 getPreset ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetPreset;
|
||||||
public abstract fun getPublishable ()Z
|
public abstract fun getPublishable ()Z
|
||||||
public abstract fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
|
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 getSourcesElementsConfigurationName ()Ljava/lang/String;
|
||||||
public abstract fun getTargetName ()Ljava/lang/String;
|
public abstract fun getTargetName ()Ljava/lang/String;
|
||||||
public abstract fun getUseDisambiguationClassifierAsSourceSetNamePrefix ()Z
|
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.PRESETS_API_IS_DEPRECATED_MESSAGE
|
||||||
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
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.KotlinCommonCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinGradlePluginDsl
|
import org.jetbrains.kotlin.gradle.dsl.KotlinGradlePluginDsl
|
||||||
@@ -81,6 +80,13 @@ interface KotlinTarget : Named, HasAttributes, HasProject, HasMutableExtras {
|
|||||||
fun compilerOptions(configure: Action<KotlinCommonCompilerOptions>) {
|
fun compilerOptions(configure: Action<KotlinCommonCompilerOptions>) {
|
||||||
throw UnsupportedOperationException("Kotlin target level compiler options DSL is not available in this release!")
|
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 {
|
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 final fun getRuntimeElementsConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||||
public fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
|
public fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
|
||||||
public final fun getRuntimeElementsPublishedConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
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 final fun getSourcesElementsConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||||
public fun getSourcesElementsConfigurationName ()Ljava/lang/String;
|
public fun getSourcesElementsConfigurationName ()Ljava/lang/String;
|
||||||
public final fun getSourcesElementsPublishedConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
public final fun getSourcesElementsPublishedConfiguration ()Lorg/gradle/api/artifacts/Configuration;
|
||||||
|
|||||||
+12
-2
@@ -5,16 +5,18 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
|
import org.gradle.api.NamedDomainObjectContainer
|
||||||
import org.gradle.api.publish.maven.MavenPublication
|
import org.gradle.api.publish.maven.MavenPublication
|
||||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
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.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.await
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinTargetImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinTargetImpl
|
||||||
import org.jetbrains.kotlin.gradle.utils.extrasStoredFuture
|
import org.jetbrains.kotlin.gradle.utils.extrasStoredFuture
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.getByType
|
||||||
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
|
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
|
||||||
|
|
||||||
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
||||||
@@ -24,6 +26,14 @@ internal interface InternalKotlinTarget : KotlinTarget, HasMutableExtras {
|
|||||||
@InternalKotlinGradlePluginApi
|
@InternalKotlinGradlePluginApi
|
||||||
override val components: Set<KotlinTargetSoftwareComponent>
|
override val components: Set<KotlinTargetSoftwareComponent>
|
||||||
fun onPublicationCreated(publication: MavenPublication)
|
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
|
internal val KotlinTarget.internal: InternalKotlinTarget
|
||||||
|
|||||||
+21
@@ -7,14 +7,35 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.unitTests
|
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.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.util.assertAllImplementationsAlsoImplement
|
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.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
class InternalKotlinTargetTest {
|
class InternalKotlinTargetTest {
|
||||||
@Test
|
@Test
|
||||||
fun `test - all implementations of KotlinTarget - implement InternalKotlinTarget`() {
|
fun `test - all implementations of KotlinTarget - implement InternalKotlinTarget`() {
|
||||||
assertAllImplementationsAlsoImplement(KotlinTarget::class, InternalKotlinTarget::class)
|
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