[Gradle] Elevate KotlinCompilation.source deprecation to ERROR

Fix internal use of this API with dedicated internal function.

^KT-58234 Verification Pending
This commit is contained in:
Anton Lakotka
2023-07-14 16:08:17 +02:00
committed by Space Team
parent aecf18b842
commit 245825cf8b
10 changed files with 28 additions and 26 deletions
@@ -131,7 +131,7 @@ interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
* Further details:
* https://kotl.in/compilation-source-deprecation
*/
@Deprecated("scheduled for removal with Kotlin 2.0")
@Deprecated("scheduled for removal with Kotlin 2.0", level = DeprecationLevel.ERROR)
fun source(sourceSet: KotlinSourceSet)
fun associateWith(other: KotlinCompilation<*>)
@@ -194,8 +194,7 @@ internal abstract class AbstractKotlinPlugin(
javaSourceSet.resources.setSrcDirs(
listOf { kotlinSourceSet.resources.sourceDirectories }
)
@Suppress("DEPRECATION")
kotlinCompilation.source(kotlinSourceSet)
kotlinCompilation.addSourceSet(kotlinSourceSet)
project.compatibilityConventionRegistrar.addConvention(javaSourceSet, kotlinSourceSetDslName, kotlinSourceSet)
javaSourceSet.addExtension(kotlinSourceSetDslName, kotlinSourceSet.kotlin)
} else {
@@ -205,8 +204,7 @@ internal abstract class AbstractKotlinPlugin(
}
kotlinTarget.compilations.all { kotlinCompilation ->
@Suppress("DEPRECATION")
kotlinCompilation.source(kotlinCompilation.defaultSourceSet)
kotlinCompilation.addSourceSet(kotlinCompilation.defaultSourceSet)
}
kotlinTarget.compilations.run {
@@ -100,7 +100,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
override fun configureSourceSet(target: KotlinTargetType) {
target.compilations.all { compilation ->
compilation.source(compilation.defaultSourceSet) // also adds dependencies, requires the configurations for target and source set to exist at this point
compilation.addSourceSet(compilation.defaultSourceSet) // also adds dependencies, requires the configurations for target and source set to exist at this point
}
}
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.await
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer
import org.jetbrains.kotlin.gradle.utils.ObservableSet
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
@@ -22,6 +23,7 @@ internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : Kotl
val configurations: KotlinCompilationConfigurationsContainer
val friendPaths: Iterable<FileCollection>
val processResourcesTaskName: String?
val sourceSets: KotlinCompilationSourceSetsContainer
}
internal val <T : KotlinCommonOptions> KotlinCompilation<T>.internal: InternalKotlinCompilation<T>
@@ -32,4 +34,7 @@ internal val <T : KotlinCommonOptions> KotlinCompilation<T>.internal: InternalKo
internal suspend fun InternalKotlinCompilation<*>.awaitAllKotlinSourceSets(): Set<KotlinSourceSet> {
KotlinPluginLifecycle.Stage.AfterFinaliseCompilations.await()
return allKotlinSourceSets
}
}
internal fun KotlinCompilation<*>.addSourceSet(kotlinSourceSet: KotlinSourceSet) =
internal.sourceSets.source(kotlinSourceSet)
@@ -11,14 +11,13 @@ import org.gradle.api.Action
import org.gradle.api.GradleException
import org.gradle.api.attributes.AttributeContainer
import org.gradle.api.file.FileCollection
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.plugin.mpp.HierarchyAttributeContainer
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
import org.jetbrains.kotlin.gradle.plugin.mpp.moduleNameForCompilation
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.gradle.tasks.locateTask
import org.jetbrains.kotlin.gradle.utils.ObservableSet
@@ -58,7 +57,7 @@ internal class KotlinCompilationImpl constructor(
override val extras: MutableExtras = mutableExtrasOf()
val sourceSets get() = params.sourceSets
override val sourceSets get() = params.sourceSets
override val configurations: KotlinCompilationConfigurationsContainer
get() = params.dependencyConfigurations
@@ -90,7 +89,7 @@ internal class KotlinCompilationImpl constructor(
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
get() = sourceSets.kotlinSourceSets
@Deprecated("scheduled for removal with Kotlin 2.0")
@Deprecated("scheduled for removal with Kotlin 2.0", level = DeprecationLevel.ERROR)
override fun source(sourceSet: KotlinSourceSet) {
sourceSets.source(sourceSet)
}
@@ -7,7 +7,8 @@
package org.jetbrains.kotlin.gradle.plugin
import com.android.build.api.attributes.BuildTypeAttr
import com.android.build.gradle.*
import com.android.build.gradle.BaseExtension
import com.android.build.gradle.BasePlugin
import com.android.build.gradle.api.*
import org.gradle.api.InvalidUserCodeException
import org.gradle.api.NamedDomainObjectCollection
@@ -25,14 +26,16 @@ import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.bundling.AbstractArchiveTask
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.internal.*
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
import org.jetbrains.kotlin.gradle.internal.checkAndroidAnnotationProcessorDependencyUsage
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilationFactory
import org.jetbrains.kotlin.gradle.plugin.mpp.addSourceSet
import org.jetbrains.kotlin.gradle.plugin.sources.android.KotlinAndroidSourceSets.applyKotlinAndroidSourceSetLayout
import org.jetbrains.kotlin.gradle.plugin.sources.android.findKotlinSourceSet
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
@@ -203,12 +206,10 @@ internal class AndroidProjectHandler(
}
// Register the source only after the task is created, because the task is required for that:
@Suppress("DEPRECATION")
compilation.source(defaultSourceSet)
compilation.addSourceSet(defaultSourceSet)
compilation.androidVariant.forEachKotlinSourceSet(project) { kotlinSourceSet ->
@Suppress("DEPRECATION")
compilation.source(kotlinSourceSet)
compilation.addSourceSet(kotlinSourceSet)
}
}
@@ -12,6 +12,7 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
import org.jetbrains.kotlin.gradle.plugin.mpp.addSourceSet
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
import org.jetbrains.kotlin.gradle.tasks.locateTask
import org.jetbrains.kotlin.gradle.tasks.registerTask
@@ -61,8 +62,7 @@ open class KotlinJsTargetConfigurator :
val project = target.project
target.compilations.all { compilation ->
@Suppress("DEPRECATION")
compilation.source(compilation.defaultSourceSet)
compilation.addSourceSet(compilation.defaultSourceSet)
configureResourceProcessing(
compilation,
@@ -79,7 +79,7 @@ class KotlinMetadataTargetConfigurator :
// it isn't necessary for KLib compilations
// see [KotlinCompilationSourceSetInclusion.AddSourcesWithoutDependsOnClosure]
defaultSourceSet.internal.dependsOnClosure.forAll {
source(it)
addSourceSet(it)
}
} else {
// Clear the dependencies of the compilation so that they don't take time resolving during task graph construction:
@@ -54,8 +54,7 @@ class KotlinMetadataTargetPreset(
val mainCompilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
val commonMainSourceSet = project.kotlinExtension.sourceSets.getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME)
@Suppress("DEPRECATION")
mainCompilation.source(commonMainSourceSet)
mainCompilation.addSourceSet(commonMainSourceSet)
project.whenEvaluated {
// Since there's no default source set, apply language settings from commonMain:
@@ -217,7 +217,7 @@ class SourceSetCommonizerTargetTest {
val nativeMain = kotlin.sourceSets.create("nativeMain")
listOf(linux1, linux2).forEach { target ->
@Suppress("DEPRECATION")
@Suppress("DEPRECATION_ERROR")
target.compilations.getByName("main").source(nativeMain)
}