[Gradle] Move MetadataDependencyTransformationTask configuration to task file

^KT-49933
This commit is contained in:
Anton Lakotka
2023-01-19 14:32:55 +01:00
committed by Space Team
parent afaa86291f
commit 244f742610
2 changed files with 26 additions and 14 deletions
@@ -6,6 +6,8 @@
package org.jetbrains.kotlin.gradle.plugin.mpp package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.DefaultTask import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.component.ComponentIdentifier import org.gradle.api.artifacts.component.ComponentIdentifier
import org.gradle.api.artifacts.component.ModuleComponentIdentifier import org.gradle.api.artifacts.component.ModuleComponentIdentifier
import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.artifacts.component.ProjectComponentIdentifier
@@ -21,6 +23,8 @@ import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope.*
import org.jetbrains.kotlin.gradle.plugin.sources.internal import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator
import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCompilationDependencies import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCompilationDependencies
import org.jetbrains.kotlin.gradle.tasks.dependsOn
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
import org.jetbrains.kotlin.gradle.tasks.locateTask import org.jetbrains.kotlin.gradle.tasks.locateTask
import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.gradle.utils.*
import java.io.File import java.io.File
@@ -31,6 +35,26 @@ import javax.inject.Inject
@Deprecated("Task was renamed to MetadataDependencyTransformationTask", replaceWith = ReplaceWith("MetadataDependencyTransformationTask")) @Deprecated("Task was renamed to MetadataDependencyTransformationTask", replaceWith = ReplaceWith("MetadataDependencyTransformationTask"))
typealias TransformKotlinGranularMetadata = MetadataDependencyTransformationTask typealias TransformKotlinGranularMetadata = MetadataDependencyTransformationTask
internal const val TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA = "transformDependenciesMetadata"
private fun transformGranularMetadataTaskName(sourceSetName: String) =
lowerCamelCaseName("transform", sourceSetName, "DependenciesMetadata")
internal fun Project.locateOrRegisterMetadataDependencyTransformationTask(
sourceSet: KotlinSourceSet
): TaskProvider<MetadataDependencyTransformationTask> {
val transformationTask = project.locateOrRegisterTask<MetadataDependencyTransformationTask>(
transformGranularMetadataTaskName(sourceSet.name),
listOf(sourceSet)
) {
description =
"Generates serialized dependencies metadata for compilation '${sourceSet.name}' (for tooling)"
}
project.locateOrRegisterTask<Task>(TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA).dependsOn(transformationTask)
return transformationTask
}
open class MetadataDependencyTransformationTask open class MetadataDependencyTransformationTask
@Inject constructor( @Inject constructor(
kotlinSourceSet: KotlinSourceSet, kotlinSourceSet: KotlinSourceSet,
@@ -64,7 +88,7 @@ open class MetadataDependencyTransformationTask
dependsOnClosureWithInterCompilationDependencies(kotlinSourceSet).mapNotNull { dependsOnClosureWithInterCompilationDependencies(kotlinSourceSet).mapNotNull {
project project
.tasks .tasks
.locateTask(KotlinMetadataTargetConfigurator.transformGranularMetadataTaskName(it.name)) .locateTask(transformGranularMetadataTaskName(it.name))
} }
} }
@@ -58,10 +58,6 @@ class KotlinMetadataTargetConfigurator :
KotlinOnlyTargetConfigurator<KotlinCompilation<*>, KotlinMetadataTarget>(createTestCompilation = false) { KotlinOnlyTargetConfigurator<KotlinCompilation<*>, KotlinMetadataTarget>(createTestCompilation = false) {
companion object { companion object {
internal const val ALL_METADATA_JAR_NAME = "allMetadataJar" internal const val ALL_METADATA_JAR_NAME = "allMetadataJar"
internal const val TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA = "transformDependenciesMetadata"
internal fun transformGranularMetadataTaskName(sourceSetName: String) =
lowerCamelCaseName("transform", sourceSetName, "DependenciesMetadata")
} }
override fun configureTarget(target: KotlinMetadataTarget) { override fun configureTarget(target: KotlinMetadataTarget) {
@@ -338,15 +334,7 @@ class KotlinMetadataTargetConfigurator :
val project = compilation.target.project val project = compilation.target.project
val sourceSet = compilation.defaultSourceSet val sourceSet = compilation.defaultSourceSet
val transformationTask = project.locateOrRegisterTask<MetadataDependencyTransformationTask>( val transformationTask = project.locateOrRegisterMetadataDependencyTransformationTask(sourceSet)
transformGranularMetadataTaskName(sourceSet.name),
listOf(sourceSet)
) {
description =
"Generates serialized dependencies metadata for compilation '${compilation.name}' of target '${compilation.target.name}' (for tooling)"
}
project.locateOrRegisterTask<Task>(TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA).dependsOn(transformationTask)
val artifacts = sourceSet.internal.resolvableMetadataConfiguration.incoming.artifacts val artifacts = sourceSet.internal.resolvableMetadataConfiguration.incoming.artifacts