From 60939a8fe61f1ce3c7788c20b727dc5153e717ce Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Wed, 24 May 2023 09:53:13 +0200 Subject: [PATCH] [Gradle] Change `skipProjectDependencies` to `transformProjectDependencies` For better code readability ^KT-58471 Verification Pending --- ...adataDependencyTransformationTaskInputs.kt | 18 +++++++-------- ...ropMetadataDependencyTransformationTask.kt | 23 ++++++++----------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTaskInputs.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTaskInputs.kt index 3f92e7dfb33..74da41bcd30 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTaskInputs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTaskInputs.kt @@ -3,7 +3,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ProjectDependency -import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* import org.gradle.work.NormalizeLineEndings @@ -17,7 +16,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.applyIf internal class MetadataDependencyTransformationTaskInputs( project: Project, kotlinSourceSet: KotlinSourceSet, - private val skipProjectDependencies: Boolean = false, + private val keepProjectDependencies: Boolean = true, ) { @Suppress("unused") // Gradle input @get:InputFiles @@ -27,7 +26,7 @@ internal class MetadataDependencyTransformationTaskInputs( val configurationToResolve: FileCollection = kotlinSourceSet .internal .resolvableMetadataConfiguration - .applyIf(skipProjectDependencies) { withoutProjectDependencies() } + .applyIf(!keepProjectDependencies) { withoutProjectDependencies() } @Suppress("unused") // Gradle input @get:InputFiles @@ -37,11 +36,12 @@ internal class MetadataDependencyTransformationTaskInputs( val hostSpecificMetadataConfigurationsToResolve: FileCollection = project.filesProvider { kotlinSourceSet.internal.compilations .filter { compilation -> if (compilation is KotlinNativeCompilation) compilation.konanTarget.enabledOnCurrentHost else true } - .mapNotNull { compilation -> compilation - .internal - .configurations - .hostSpecificMetadataConfiguration - ?.applyIf(skipProjectDependencies) { withoutProjectDependencies() } + .mapNotNull { compilation -> + compilation + .internal + .configurations + .hostSpecificMetadataConfiguration + ?.applyIf(!keepProjectDependencies) { withoutProjectDependencies() } } } @@ -74,7 +74,7 @@ internal class MetadataDependencyTransformationTaskInputs( participatingSourceSets.flatMap { it.internal.compilations }.associate { it.name to project.configurations.getByName(it.compileDependencyConfigurationName) .allDependencies - .applyIf(skipProjectDependencies) { filterNot { it is ProjectDependency } } + .applyIf(!keepProjectDependencies) { filterNot { it is ProjectDependency } } .map { listOf(it.group, it.name, it.version) }.toSet() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt index 8d31c27cca0..e3cf816b9a9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt @@ -7,8 +7,6 @@ package org.jetbrains.kotlin.gradle.targets.native.internal import org.gradle.api.DefaultTask import org.gradle.api.Project -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.file.FileCollection import org.gradle.api.file.RegularFileProperty import org.gradle.api.model.ObjectFactory @@ -22,17 +20,14 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.ArtifactMetadataProvider import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.ProjectMetadataProvider -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toKpmModuleIdentifiers import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.sources.internal -import org.jetbrains.kotlin.gradle.plugin.sources.metadataTransformation import org.jetbrains.kotlin.gradle.tasks.dependsOn import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask import org.jetbrains.kotlin.gradle.tasks.withType import org.jetbrains.kotlin.gradle.utils.filesProvider import org.jetbrains.kotlin.gradle.utils.isProjectComponentIdentifierInCurrentBuild import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName -import org.jetbrains.kotlin.project.model.KpmModuleIdentifier import org.jetbrains.kotlin.utils.addToStdlib.applyIf import java.io.File import java.io.Serializable @@ -58,8 +53,8 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas project.layout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSet.name), /* cleaning = */ CInteropMetadataDependencyTransformationTask.Cleaning.DeleteOutputDirectory, - /* skipProjectDependencies = */ - false, // we want project dependencies to be included in the output + /* transformProjectDependencies = */ + true, ), configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() } ) @@ -86,8 +81,8 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde, /* cleaning = */ CInteropMetadataDependencyTransformationTask.Cleaning.None, - /* skipProjectDependencies = */ - true, + /* transformProjectDependencies = */ + false, // For IDE Project Dependencies will be transformed during configuration, see [createCInteropMetadataDependencyClasspath] ), configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() } ) @@ -119,9 +114,9 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru @Transient @get:Internal val sourceSet: DefaultKotlinSourceSet, @get:OutputDirectory val outputDirectory: File, @get:Internal val cleaning: Cleaning, - /** when set, project-to-project dependencies will not be included to [outputLibraryFiles], + /** when false, project-to-project dependencies will not be transformed and listed in [outputLibraryFiles], * assuming they are added during gradle configuration, see [createCInteropMetadataDependencyClasspath] for details */ - private val skipProjectDependencies: Boolean, + private val transformProjectDependencies: Boolean, objectFactory: ObjectFactory, ) : DefaultTask() { @@ -142,7 +137,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru } @get:Nested - internal val inputs = MetadataDependencyTransformationTaskInputs(project, sourceSet, skipProjectDependencies) + internal val inputs = MetadataDependencyTransformationTaskInputs(project, sourceSet, transformProjectDependencies) @get:OutputFile protected val outputLibrariesFileIndex: RegularFileProperty = objectFactory @@ -177,7 +172,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru val metadataProvider = chooseVisibleSourceSets.metadataProvider return when (metadataProvider) { is ProjectMetadataProvider -> { - if (skipProjectDependencies) return emptyList() + if (!transformProjectDependencies) return emptyList() val visibleSourceSetName = chooseVisibleSourceSets.visibleSourceSetProvidingCInterops ?: return emptyList() metadataProvider .getSourceSetCInteropMetadata(visibleSourceSetName, ProjectMetadataProvider.MetadataConsumer.Cli) @@ -198,7 +193,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru private fun Iterable.resolutionsToTransform(): List { return filterIsInstance() - .applyIf(skipProjectDependencies) { + .applyIf(!transformProjectDependencies) { filterNot { it.dependency.id.isProjectComponentIdentifierInCurrentBuild } } }