[Gradle] Change skipProjectDependencies to transformProjectDependencies

For better code readability

^KT-58471 Verification Pending
This commit is contained in:
Anton Lakotka
2023-05-24 09:53:13 +02:00
committed by Space Team
parent 792c08ec7d
commit 60939a8fe6
2 changed files with 18 additions and 23 deletions
@@ -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()
}
}
@@ -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<MetadataDependencyResolution>.resolutionsToTransform(): List<ChooseVisibleSourceSets> {
return filterIsInstance<ChooseVisibleSourceSets>()
.applyIf(skipProjectDependencies) {
.applyIf(!transformProjectDependencies) {
filterNot { it.dependency.id.isProjectComponentIdentifierInCurrentBuild }
}
}