[Gradle][Minor] Deprecate 'KotlinCompilation.associateWith' property...
... in favor of associateCompilations and allAssociateCompilations ^KT-60937 Verification Pending
This commit is contained in:
committed by
Space Team
parent
8ce820d944
commit
6c6200a9c5
@@ -707,8 +707,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinCompila
|
||||
public abstract fun attributes (Lorg/gradle/api/Action;)V
|
||||
public abstract fun defaultSourceSet (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun defaultSourceSet (Lorg/gradle/api/Action;)V
|
||||
public abstract fun getAllAssociatedCompilations ()Ljava/util/Set;
|
||||
public abstract fun getAllKotlinSourceSets ()Ljava/util/Set;
|
||||
public abstract fun getAssociateWith ()Ljava/util/List;
|
||||
public abstract fun getAssociatedCompilations ()Ljava/util/Set;
|
||||
public abstract fun getCompilationName ()Ljava/lang/String;
|
||||
public abstract fun getCompileAllTaskName ()Ljava/lang/String;
|
||||
public abstract fun getCompileDependencyConfigurationName ()Ljava/lang/String;
|
||||
@@ -744,6 +746,7 @@ public final class org/jetbrains/kotlin/gradle/plugin/KotlinCompilation$DefaultI
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;Lorg/gradle/api/Action;)V
|
||||
public static fun defaultSourceSet (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;Lorg/gradle/api/Action;)V
|
||||
public static fun getAssociateWith (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;)Ljava/util/List;
|
||||
public static fun getDefaultSourceSetName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;)Ljava/lang/String;
|
||||
public static fun getDisambiguatedName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;)Ljava/lang/String;
|
||||
public static fun getName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation;)Ljava/lang/String;
|
||||
@@ -774,6 +777,7 @@ public final class org/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnabl
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;Lorg/gradle/api/Action;)V
|
||||
public static fun defaultSourceSet (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;Lorg/gradle/api/Action;)V
|
||||
public static fun getAssociateWith (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;)Ljava/util/List;
|
||||
public static fun getDefaultSourceSetName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;)Ljava/lang/String;
|
||||
public static fun getDisambiguatedName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;)Ljava/lang/String;
|
||||
public static fun getName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationToRunnableFiles;)Ljava/lang/String;
|
||||
@@ -790,6 +794,7 @@ public final class org/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResou
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun attributes (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;Lorg/gradle/api/Action;)V
|
||||
public static fun defaultSourceSet (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;Lorg/gradle/api/Action;)V
|
||||
public static fun getAssociateWith (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;)Ljava/util/List;
|
||||
public static fun getDefaultSourceSetName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;)Ljava/lang/String;
|
||||
public static fun getDisambiguatedName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;)Ljava/lang/String;
|
||||
public static fun getName (Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationWithResources;)Ljava/lang/String;
|
||||
|
||||
+18
-1
@@ -14,6 +14,7 @@ import org.gradle.api.attributes.HasAttributes
|
||||
import org.gradle.api.file.FileCollection
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompileDeprecated
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
|
||||
@@ -136,7 +137,23 @@ interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
|
||||
|
||||
fun associateWith(other: KotlinCompilation<*>)
|
||||
|
||||
val associateWith: List<KotlinCompilation<*>>
|
||||
@Deprecated("Use 'associatedCompilations' instead", ReplaceWith("associatedCompilations.toList()"))
|
||||
val associateWith: List<KotlinCompilation<*>> get() = associatedCompilations.toList()
|
||||
|
||||
/**
|
||||
* All compilations previously associated using [associateWith]
|
||||
*
|
||||
* e.g. 'test' compilations will return 'setOf(main)' by default
|
||||
* @since 1.9.20
|
||||
*/
|
||||
val associatedCompilations: Set<KotlinCompilation<*>>
|
||||
|
||||
/**
|
||||
* Full transitive closure of [associatedCompilations]
|
||||
* @since 1.9.20
|
||||
*/
|
||||
@ExperimentalKotlinGradlePluginApi
|
||||
val allAssociatedCompilations: Set<KotlinCompilation<*>>
|
||||
|
||||
override fun getName(): String = compilationName
|
||||
|
||||
|
||||
+1
-1
@@ -208,7 +208,7 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp
|
||||
|
||||
targets.flatMap { it.compilations }.forEach { compilation ->
|
||||
val variant = fragmentByName(compilation.defaultSourceSetName)
|
||||
compilation.associateWith.forEach { associate ->
|
||||
compilation.associatedCompilations.forEach { associate ->
|
||||
val associateVariant = fragmentByName(associate.defaultSourceSetName)
|
||||
variant.declaredModuleDependencies.add(KpmModuleDependency(associateVariant.containingModule.moduleIdentifier))
|
||||
}
|
||||
|
||||
+2
-2
@@ -21,8 +21,8 @@ internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : Kotl
|
||||
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
|
||||
val associatedCompilations: ObservableSet<KotlinCompilation<*>>
|
||||
val allAssociatedCompilations: ObservableSet<KotlinCompilation<*>>
|
||||
override val associatedCompilations: ObservableSet<KotlinCompilation<*>>
|
||||
override val allAssociatedCompilations: ObservableSet<KotlinCompilation<*>>
|
||||
|
||||
val configurations: KotlinCompilationConfigurationsContainer
|
||||
val friendPaths: Iterable<FileCollection>
|
||||
|
||||
+2
-3
@@ -10,7 +10,6 @@ import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTool
|
||||
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||
|
||||
@@ -25,7 +24,7 @@ internal class DefaultKotlinCompilationFriendPathsResolver(
|
||||
|
||||
override fun resolveFriendPaths(compilation: InternalKotlinCompilation<*>): Iterable<FileCollection> {
|
||||
return mutableListOf<FileCollection>().apply {
|
||||
compilation.associateWithClosure.forEach {
|
||||
compilation.allAssociatedCompilations.forEach {
|
||||
add(it.output.classesDirs)
|
||||
// Adding classes that could be produced to non-default destination for JVM target
|
||||
// Check KotlinSourceSetProcessor for details
|
||||
@@ -69,7 +68,7 @@ internal class DefaultKotlinCompilationFriendPathsResolver(
|
||||
}
|
||||
|
||||
private fun resolveFriendArtifactsTask(compilation: InternalKotlinCompilation<*>): TaskProvider<AbstractArchiveTask>? {
|
||||
if (compilation.associateWithClosure.none { it.isMain() }) return null
|
||||
if (compilation.allAssociatedCompilations.none { it.isMain() }) return null
|
||||
val archiveTasks = compilation.project.tasks.withType(AbstractArchiveTask::class.java)
|
||||
if (compilation.target.artifactsTaskName !in archiveTasks.names) return null
|
||||
return archiveTasks.named(compilation.target.artifactsTaskName)
|
||||
|
||||
-3
@@ -194,9 +194,6 @@ internal class KotlinCompilationImpl constructor(
|
||||
override val allAssociatedCompilations: ObservableSet<KotlinCompilation<*>>
|
||||
get() = allAssociatedCompilationsImpl
|
||||
|
||||
override val associateWith: List<KotlinCompilation<*>>
|
||||
get() = associatedCompilationsImpl.toList()
|
||||
|
||||
override fun associateWith(other: KotlinCompilation<*>) {
|
||||
require(other.target == target) { "Only associations between compilations of a single target are supported" }
|
||||
if (!associatedCompilationsImpl.add(other)) return
|
||||
|
||||
-3
@@ -71,9 +71,6 @@ internal fun addSourcesToKotlinCompileTask(
|
||||
}
|
||||
}
|
||||
|
||||
internal val KotlinCompilation<*>.associateWithClosure: Iterable<KotlinCompilation<*>>
|
||||
get() = this.closure { it.associateWith }
|
||||
|
||||
internal fun KotlinCompilation<*>.disambiguateName(simpleName: String): String {
|
||||
return lowerCamelCaseName(
|
||||
target.disambiguationClassifier,
|
||||
|
||||
+2
-5
@@ -6,14 +6,11 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin.sources
|
||||
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.associateWithClosure
|
||||
|
||||
fun getSourceSetsFromAssociatedCompilations(fromCompilation: KotlinCompilation<*>): Map<KotlinCompilation<*>, Set<KotlinSourceSet>> =
|
||||
fromCompilation.associateWithClosure.associate { it to it.allKotlinSourceSets }
|
||||
fromCompilation.allAssociatedCompilations.associate { it to it.allKotlinSourceSets }
|
||||
|
||||
fun getVisibleSourceSetsFromAssociateCompilations(
|
||||
sourceSet: KotlinSourceSet
|
||||
@@ -93,7 +90,7 @@ class UnsatisfiedSourceSetVisibilityException(
|
||||
else "\n"
|
||||
)
|
||||
|
||||
compilation.associateWith.forEach { appendCompilationRecursively(it, depth + 1) }
|
||||
compilation.associatedCompilations.toList().forEach { appendCompilationRecursively(it, depth + 1) }
|
||||
|
||||
if (!isAssociatedCompilation) {
|
||||
val missingRequiredSourceSets = requiredButNotVisible.filter { missingSourceSet ->
|
||||
|
||||
+2
-3
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.associateWithClosure
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.internal
|
||||
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropIdentifier.Scope
|
||||
import org.jetbrains.kotlin.tooling.core.UnsafeApi
|
||||
@@ -58,7 +57,7 @@ internal fun CInteropCommonizerDependent.Factory.from(
|
||||
This relationship should not be declared, but we try to be lenient towards it here.
|
||||
*/
|
||||
val filteredCompilations = compilations.filter { compilation ->
|
||||
compilation.associateWithClosure.none { associateCompilation -> associateCompilation in compilations }
|
||||
compilation.allAssociatedCompilations.none { associatedCompilation -> associatedCompilation in compilations }
|
||||
}.ifEmpty { return null }.toSet()
|
||||
|
||||
val scopes: Set<Scope> = filteredCompilations
|
||||
@@ -92,7 +91,7 @@ internal suspend fun CInteropCommonizerDependent.Factory.fromAssociateCompilatio
|
||||
target = sourceSet.commonizerTarget.await() as? SharedCommonizerTarget ?: return null,
|
||||
compilations = sourceSet.internal.compilations
|
||||
.filterIsInstance<KotlinNativeCompilation>()
|
||||
.flatMap { compilation -> compilation.associateWithClosure }
|
||||
.flatMap { compilation -> compilation.allAssociatedCompilations }
|
||||
.filterIsInstance<KotlinNativeCompilation>()
|
||||
.toSet()
|
||||
)
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ internal fun Project.getPlatformCinteropDependenciesOrEmpty(
|
||||
/* Participating in multiple compilations? -> can't propagate -> should be commonized */
|
||||
val compilation = compilations.singleOrNull() as? KotlinNativeCompilation ?: return@files emptySet<File>()
|
||||
|
||||
(compilation.associateWith + compilation)
|
||||
(compilation.associatedCompilations + compilation)
|
||||
.filterIsInstance<KotlinNativeCompilation>()
|
||||
.filter(compilationFilter)
|
||||
.map { relevantCompilation -> getAllCInteropOutputFiles(relevantCompilation) }
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ open class NativePerformanceReport : DefaultTask() {
|
||||
// Get compile task and associated with it other compile tasks.
|
||||
private fun getAllExecutedTasks(compilation: KotlinCompilation<*>): List<Task> {
|
||||
val tasks = mutableListOf(compilation.compileKotlinTask as Task)
|
||||
compilation.associateWith.forEach {
|
||||
compilation.associatedCompilations.toList().forEach {
|
||||
tasks += getAllExecutedTasks(it)
|
||||
}
|
||||
return tasks
|
||||
|
||||
+1
-2
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPro
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.BuildIdService
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.associateWithClosure
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
|
||||
import org.jetbrains.kotlin.gradle.report.BuildMetricsService
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
@@ -127,7 +126,7 @@ internal abstract class AbstractKotlinCompileConfig<TASK : AbstractKotlinCompile
|
||||
task.friendPaths.from({ compilationInfo.friendPaths })
|
||||
compilationInfo.tcsOrNull?.compilation?.let { compilation ->
|
||||
task.friendSourceSets
|
||||
.value(providers.provider { compilation.associateWithClosure.map { it.name } })
|
||||
.value(providers.provider { compilation.allAssociatedCompilations.map { it.name } })
|
||||
.disallowChanges()
|
||||
task.pluginClasspath.from(
|
||||
compilation.internal.configurations.pluginConfiguration
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ class ExternalKotlinTargetApiTests {
|
||||
}
|
||||
|
||||
auxCompilation.associateWith(mainCompilation)
|
||||
assertEquals(setOf(mainCompilation), auxCompilation.associateWith.toSet())
|
||||
assertEquals(setOf(mainCompilation), auxCompilation.associatedCompilations.toSet())
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user