[Gradle] Change skipProjectDependencies to transformProjectDependencies
For better code readability ^KT-58471 Verification Pending
This commit is contained in:
committed by
Space Team
parent
792c08ec7d
commit
60939a8fe6
+9
-9
@@ -3,7 +3,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.ProjectDependency
|
import org.gradle.api.artifacts.ProjectDependency
|
||||||
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
|
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.work.NormalizeLineEndings
|
import org.gradle.work.NormalizeLineEndings
|
||||||
@@ -17,7 +16,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
|||||||
internal class MetadataDependencyTransformationTaskInputs(
|
internal class MetadataDependencyTransformationTaskInputs(
|
||||||
project: Project,
|
project: Project,
|
||||||
kotlinSourceSet: KotlinSourceSet,
|
kotlinSourceSet: KotlinSourceSet,
|
||||||
private val skipProjectDependencies: Boolean = false,
|
private val keepProjectDependencies: Boolean = true,
|
||||||
) {
|
) {
|
||||||
@Suppress("unused") // Gradle input
|
@Suppress("unused") // Gradle input
|
||||||
@get:InputFiles
|
@get:InputFiles
|
||||||
@@ -27,7 +26,7 @@ internal class MetadataDependencyTransformationTaskInputs(
|
|||||||
val configurationToResolve: FileCollection = kotlinSourceSet
|
val configurationToResolve: FileCollection = kotlinSourceSet
|
||||||
.internal
|
.internal
|
||||||
.resolvableMetadataConfiguration
|
.resolvableMetadataConfiguration
|
||||||
.applyIf(skipProjectDependencies) { withoutProjectDependencies() }
|
.applyIf(!keepProjectDependencies) { withoutProjectDependencies() }
|
||||||
|
|
||||||
@Suppress("unused") // Gradle input
|
@Suppress("unused") // Gradle input
|
||||||
@get:InputFiles
|
@get:InputFiles
|
||||||
@@ -37,11 +36,12 @@ internal class MetadataDependencyTransformationTaskInputs(
|
|||||||
val hostSpecificMetadataConfigurationsToResolve: FileCollection = project.filesProvider {
|
val hostSpecificMetadataConfigurationsToResolve: FileCollection = project.filesProvider {
|
||||||
kotlinSourceSet.internal.compilations
|
kotlinSourceSet.internal.compilations
|
||||||
.filter { compilation -> if (compilation is KotlinNativeCompilation) compilation.konanTarget.enabledOnCurrentHost else true }
|
.filter { compilation -> if (compilation is KotlinNativeCompilation) compilation.konanTarget.enabledOnCurrentHost else true }
|
||||||
.mapNotNull { compilation -> compilation
|
.mapNotNull { compilation ->
|
||||||
.internal
|
compilation
|
||||||
.configurations
|
.internal
|
||||||
.hostSpecificMetadataConfiguration
|
.configurations
|
||||||
?.applyIf(skipProjectDependencies) { withoutProjectDependencies() }
|
.hostSpecificMetadataConfiguration
|
||||||
|
?.applyIf(!keepProjectDependencies) { withoutProjectDependencies() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ internal class MetadataDependencyTransformationTaskInputs(
|
|||||||
participatingSourceSets.flatMap { it.internal.compilations }.associate {
|
participatingSourceSets.flatMap { it.internal.compilations }.associate {
|
||||||
it.name to project.configurations.getByName(it.compileDependencyConfigurationName)
|
it.name to project.configurations.getByName(it.compileDependencyConfigurationName)
|
||||||
.allDependencies
|
.allDependencies
|
||||||
.applyIf(skipProjectDependencies) { filterNot { it is ProjectDependency } }
|
.applyIf(!keepProjectDependencies) { filterNot { it is ProjectDependency } }
|
||||||
.map { listOf(it.group, it.name, it.version) }.toSet()
|
.map { listOf(it.group, it.name, it.version) }.toSet()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-14
@@ -7,8 +7,6 @@ package org.jetbrains.kotlin.gradle.targets.native.internal
|
|||||||
|
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.Project
|
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.FileCollection
|
||||||
import org.gradle.api.file.RegularFileProperty
|
import org.gradle.api.file.RegularFileProperty
|
||||||
import org.gradle.api.model.ObjectFactory
|
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
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.ArtifactMetadataProvider
|
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.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.DefaultKotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.internal
|
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.dependsOn
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||||
import org.jetbrains.kotlin.gradle.tasks.withType
|
import org.jetbrains.kotlin.gradle.tasks.withType
|
||||||
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||||
import org.jetbrains.kotlin.gradle.utils.isProjectComponentIdentifierInCurrentBuild
|
import org.jetbrains.kotlin.gradle.utils.isProjectComponentIdentifierInCurrentBuild
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import org.jetbrains.kotlin.project.model.KpmModuleIdentifier
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
@@ -58,8 +53,8 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas
|
|||||||
project.layout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSet.name),
|
project.layout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSet.name),
|
||||||
/* cleaning = */
|
/* cleaning = */
|
||||||
CInteropMetadataDependencyTransformationTask.Cleaning.DeleteOutputDirectory,
|
CInteropMetadataDependencyTransformationTask.Cleaning.DeleteOutputDirectory,
|
||||||
/* skipProjectDependencies = */
|
/* transformProjectDependencies = */
|
||||||
false, // we want project dependencies to be included in the output
|
true,
|
||||||
),
|
),
|
||||||
configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() }
|
configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() }
|
||||||
)
|
)
|
||||||
@@ -86,8 +81,8 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas
|
|||||||
project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
|
project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
|
||||||
/* cleaning = */
|
/* cleaning = */
|
||||||
CInteropMetadataDependencyTransformationTask.Cleaning.None,
|
CInteropMetadataDependencyTransformationTask.Cleaning.None,
|
||||||
/* skipProjectDependencies = */
|
/* transformProjectDependencies = */
|
||||||
true,
|
false, // For IDE Project Dependencies will be transformed during configuration, see [createCInteropMetadataDependencyClasspath]
|
||||||
),
|
),
|
||||||
configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() }
|
configureTask = { configureTaskOrder(); onlyIfSourceSetIsSharedNative() }
|
||||||
)
|
)
|
||||||
@@ -119,9 +114,9 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
|||||||
@Transient @get:Internal val sourceSet: DefaultKotlinSourceSet,
|
@Transient @get:Internal val sourceSet: DefaultKotlinSourceSet,
|
||||||
@get:OutputDirectory val outputDirectory: File,
|
@get:OutputDirectory val outputDirectory: File,
|
||||||
@get:Internal val cleaning: Cleaning,
|
@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 */
|
* assuming they are added during gradle configuration, see [createCInteropMetadataDependencyClasspath] for details */
|
||||||
private val skipProjectDependencies: Boolean,
|
private val transformProjectDependencies: Boolean,
|
||||||
objectFactory: ObjectFactory,
|
objectFactory: ObjectFactory,
|
||||||
) : DefaultTask() {
|
) : DefaultTask() {
|
||||||
|
|
||||||
@@ -142,7 +137,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
|||||||
}
|
}
|
||||||
|
|
||||||
@get:Nested
|
@get:Nested
|
||||||
internal val inputs = MetadataDependencyTransformationTaskInputs(project, sourceSet, skipProjectDependencies)
|
internal val inputs = MetadataDependencyTransformationTaskInputs(project, sourceSet, transformProjectDependencies)
|
||||||
|
|
||||||
@get:OutputFile
|
@get:OutputFile
|
||||||
protected val outputLibrariesFileIndex: RegularFileProperty = objectFactory
|
protected val outputLibrariesFileIndex: RegularFileProperty = objectFactory
|
||||||
@@ -177,7 +172,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
|||||||
val metadataProvider = chooseVisibleSourceSets.metadataProvider
|
val metadataProvider = chooseVisibleSourceSets.metadataProvider
|
||||||
return when (metadataProvider) {
|
return when (metadataProvider) {
|
||||||
is ProjectMetadataProvider -> {
|
is ProjectMetadataProvider -> {
|
||||||
if (skipProjectDependencies) return emptyList()
|
if (!transformProjectDependencies) return emptyList()
|
||||||
val visibleSourceSetName = chooseVisibleSourceSets.visibleSourceSetProvidingCInterops ?: return emptyList()
|
val visibleSourceSetName = chooseVisibleSourceSets.visibleSourceSetProvidingCInterops ?: return emptyList()
|
||||||
metadataProvider
|
metadataProvider
|
||||||
.getSourceSetCInteropMetadata(visibleSourceSetName, ProjectMetadataProvider.MetadataConsumer.Cli)
|
.getSourceSetCInteropMetadata(visibleSourceSetName, ProjectMetadataProvider.MetadataConsumer.Cli)
|
||||||
@@ -198,7 +193,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
|||||||
|
|
||||||
private fun Iterable<MetadataDependencyResolution>.resolutionsToTransform(): List<ChooseVisibleSourceSets> {
|
private fun Iterable<MetadataDependencyResolution>.resolutionsToTransform(): List<ChooseVisibleSourceSets> {
|
||||||
return filterIsInstance<ChooseVisibleSourceSets>()
|
return filterIsInstance<ChooseVisibleSourceSets>()
|
||||||
.applyIf(skipProjectDependencies) {
|
.applyIf(!transformProjectDependencies) {
|
||||||
filterNot { it.dependency.id.isProjectComponentIdentifierInCurrentBuild }
|
filterNot { it.dependency.id.isProjectComponentIdentifierInCurrentBuild }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user