diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt index 94bbd1496ae..8f070ef3fa2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.gradle.plugin.mpp 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.ModuleComponentIdentifier 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.targets.metadata.KotlinMetadataTargetConfigurator 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.utils.* import java.io.File @@ -31,6 +35,26 @@ import javax.inject.Inject @Deprecated("Task was renamed to MetadataDependencyTransformationTask", replaceWith = ReplaceWith("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 { + val transformationTask = project.locateOrRegisterTask( + transformGranularMetadataTaskName(sourceSet.name), + listOf(sourceSet) + ) { + description = + "Generates serialized dependencies metadata for compilation '${sourceSet.name}' (for tooling)" + } + + project.locateOrRegisterTask(TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA).dependsOn(transformationTask) + + return transformationTask +} + open class MetadataDependencyTransformationTask @Inject constructor( kotlinSourceSet: KotlinSourceSet, @@ -64,7 +88,7 @@ open class MetadataDependencyTransformationTask dependsOnClosureWithInterCompilationDependencies(kotlinSourceSet).mapNotNull { project .tasks - .locateTask(KotlinMetadataTargetConfigurator.transformGranularMetadataTaskName(it.name)) + .locateTask(transformGranularMetadataTaskName(it.name)) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index 17709d477c2..34a42949895 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -58,10 +58,6 @@ class KotlinMetadataTargetConfigurator : KotlinOnlyTargetConfigurator, KotlinMetadataTarget>(createTestCompilation = false) { companion object { 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) { @@ -338,15 +334,7 @@ class KotlinMetadataTargetConfigurator : val project = compilation.target.project val sourceSet = compilation.defaultSourceSet - val transformationTask = project.locateOrRegisterTask( - transformGranularMetadataTaskName(sourceSet.name), - listOf(sourceSet) - ) { - description = - "Generates serialized dependencies metadata for compilation '${compilation.name}' of target '${compilation.target.name}' (for tooling)" - } - - project.locateOrRegisterTask(TRANSFORM_ALL_SOURCESETS_DEPENDENCIES_METADATA).dependsOn(transformationTask) + val transformationTask = project.locateOrRegisterMetadataDependencyTransformationTask(sourceSet) val artifacts = sourceSet.internal.resolvableMetadataConfiguration.incoming.artifacts