[Gradle] Remove relatedConfigurationNames
It was public api which has not much use outside KGP. Moreover, this api has a little use so it is ok list configuration names in place. ^KT-58225 Verification Pending
This commit is contained in:
committed by
Space Team
parent
8aacdb471b
commit
001bdc411d
-4
@@ -196,10 +196,6 @@ interface HasKotlinDependencies {
|
||||
val implementationConfigurationName: String
|
||||
val compileOnlyConfigurationName: String
|
||||
val runtimeOnlyConfigurationName: String
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
val relatedConfigurationNames: List<String>
|
||||
get() = listOf(apiConfigurationName, implementationConfigurationName, compileOnlyConfigurationName, runtimeOnlyConfigurationName)
|
||||
}
|
||||
|
||||
@Deprecated("Do not use in your build script")
|
||||
|
||||
-10
@@ -140,11 +140,6 @@ interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
|
||||
|
||||
override fun getName(): String = compilationName
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
@Suppress("DEPRECATION")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = super.relatedConfigurationNames + compileDependencyConfigurationName
|
||||
|
||||
val disambiguatedName
|
||||
get() = target.disambiguationClassifier + name
|
||||
}
|
||||
@@ -154,11 +149,6 @@ interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> :
|
||||
override val runtimeDependencyConfigurationName: String
|
||||
|
||||
override var runtimeDependencyFiles: FileCollection
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = super.relatedConfigurationNames + runtimeDependencyConfigurationName
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
|
||||
-5
@@ -21,9 +21,4 @@ internal constructor(compilation: KotlinCompilationImpl) : AbstractKotlinCompila
|
||||
|
||||
final override var runtimeDependencyFiles: FileCollection =
|
||||
compilation.runtimeDependencyFiles ?: error("$compilation: Missing 'runtimeDependencyFiles'")
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
@Suppress("DEPRECATION")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = compilation.relatedConfigurationNames
|
||||
}
|
||||
-54
@@ -202,60 +202,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The attributes attached to the targets and compilations need to be propagated to the relevant Gradle configurations:
|
||||
* 1. Output configurations of each target need the corresponding compilation's attributes (and, indirectly, the target's attributes)
|
||||
* 2. Resolvable configurations of each compilation need the compilation's attributes
|
||||
*/
|
||||
internal fun applyUserDefinedAttributes(target: AbstractKotlinTarget) {
|
||||
val project = target.project
|
||||
project.whenEvaluated {
|
||||
// To copy the attributes to the output configurations, find those output configurations and their producing compilations
|
||||
// based on the target's components:
|
||||
val outputConfigurationsWithCompilations = target.kotlinComponents.filterIsInstance<KotlinVariant>().flatMap { kotlinVariant ->
|
||||
kotlinVariant.usages.mapNotNull { usageContext ->
|
||||
project.configurations.findByName(usageContext.dependencyConfigurationName)?.let { configuration ->
|
||||
configuration to usageContext.compilation
|
||||
}
|
||||
}
|
||||
}.toMutableList()
|
||||
|
||||
val mainCompilation = target.compilations.findByName(KotlinCompilation.MAIN_COMPILATION_NAME)
|
||||
|
||||
// Add usages of android library when its variants are grouped by flavor
|
||||
outputConfigurationsWithCompilations += target.kotlinComponents
|
||||
.filterIsInstance<JointAndroidKotlinTargetComponent>()
|
||||
.flatMap { variant -> variant.usages }
|
||||
.mapNotNull { usage ->
|
||||
val configuration = project.configurations.findByName(usage.dependencyConfigurationName) ?: return@mapNotNull null
|
||||
configuration to usage.compilation
|
||||
}
|
||||
|
||||
outputConfigurationsWithCompilations.forEach { (configuration, compilation) ->
|
||||
copyAttributes(compilation.attributes, configuration.attributes)
|
||||
}
|
||||
|
||||
target.compilations.all { compilation ->
|
||||
val compilationAttributes = compilation.attributes
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
compilation.relatedConfigurationNames
|
||||
.mapNotNull { configurationName -> target.project.configurations.findByName(configurationName) }
|
||||
.forEach { configuration -> copyAttributes(compilationAttributes, configuration.attributes) }
|
||||
}
|
||||
|
||||
// Copy to host-specific metadata elements configurations
|
||||
if (target is KotlinNativeTarget) {
|
||||
val hostSpecificMetadataElements = project.configurations.findByName(target.hostSpecificMetadataElementsConfigurationName)
|
||||
if (hostSpecificMetadataElements != null) {
|
||||
copyAttributes(from = target.attributes, to = hostSpecificMetadataElements.attributes)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
internal fun Project.setupGeneralKotlinExtensionParameters() {
|
||||
project.launch {
|
||||
for (sourceSet in kotlinExtension.awaitSourceSets()) {
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
|
||||
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||
|
||||
|
||||
/**
|
||||
* The attributes attached to the targets and compilations need to be propagated to the relevant Gradle configurations:
|
||||
* 1. Output configurations of each target need the corresponding compilation's attributes (and, indirectly, the target's attributes)
|
||||
* 2. Resolvable configurations of each compilation need the compilation's attributes
|
||||
*/
|
||||
internal fun applyUserDefinedAttributes(target: AbstractKotlinTarget) {
|
||||
val project = target.project
|
||||
project.whenEvaluated {
|
||||
// To copy the attributes to the output configurations, find those output configurations and their producing compilations
|
||||
// based on the target's components:
|
||||
val outputConfigurationsWithCompilations = target.kotlinComponents.filterIsInstance<KotlinVariant>().flatMap { kotlinVariant ->
|
||||
kotlinVariant.usages.mapNotNull { usageContext ->
|
||||
project.configurations.findByName(usageContext.dependencyConfigurationName)?.let { configuration ->
|
||||
configuration to usageContext.compilation
|
||||
}
|
||||
}
|
||||
}.toMutableList()
|
||||
|
||||
// Add usages of android library when its variants are grouped by flavor
|
||||
outputConfigurationsWithCompilations += target.kotlinComponents
|
||||
.filterIsInstance<JointAndroidKotlinTargetComponent>()
|
||||
.flatMap { variant -> variant.usages }
|
||||
.mapNotNull { usage ->
|
||||
val configuration = project.configurations.findByName(usage.dependencyConfigurationName) ?: return@mapNotNull null
|
||||
configuration to usage.compilation
|
||||
}
|
||||
|
||||
outputConfigurationsWithCompilations.forEach { (configuration, compilation) ->
|
||||
copyAttributes(compilation.attributes, configuration.attributes)
|
||||
}
|
||||
|
||||
target.compilations.all { compilation ->
|
||||
val compilationAttributes = compilation.attributes
|
||||
|
||||
compilation.allOwnedConfigurationsNames
|
||||
.mapNotNull { configurationName -> target.project.configurations.findByName(configurationName) }
|
||||
.forEach { configuration -> copyAttributes(compilationAttributes, configuration.attributes) }
|
||||
}
|
||||
|
||||
// Copy to host-specific metadata elements configurations
|
||||
if (target is KotlinNativeTarget) {
|
||||
val hostSpecificMetadataElements = project.configurations.findByName(target.hostSpecificMetadataElementsConfigurationName)
|
||||
if (hostSpecificMetadataElements != null) {
|
||||
copyAttributes(from = target.attributes, to = hostSpecificMetadataElements.attributes)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val KotlinCompilation<*>.allOwnedConfigurationsNames
|
||||
get(): List<String> {
|
||||
val defaultConfigurations = listOfNotNull(
|
||||
apiConfigurationName,
|
||||
implementationConfigurationName,
|
||||
compileOnlyConfigurationName,
|
||||
runtimeOnlyConfigurationName,
|
||||
compileDependencyConfigurationName,
|
||||
runtimeDependencyConfigurationName,
|
||||
)
|
||||
|
||||
val implementationSpecificConfigurations = when (this) {
|
||||
is KotlinJvmAndroidCompilation -> listOfNotNull(
|
||||
"${androidVariant.name}ApiElements",
|
||||
"${androidVariant.name}RuntimeElements",
|
||||
androidVariant.compileConfiguration.name,
|
||||
androidVariant.runtimeConfiguration.name
|
||||
)
|
||||
is KotlinJsCompilation -> listOfNotNull(npmAggregatedConfigurationName, publicPackageJsonConfigurationName)
|
||||
else -> emptyList()
|
||||
}
|
||||
|
||||
return defaultConfigurations + implementationSpecificConfigurations
|
||||
}
|
||||
-10
@@ -127,16 +127,6 @@ internal class KotlinCompilationImpl constructor(
|
||||
|
||||
override var runtimeDependencyFiles: FileCollection? = configurations.runtimeDependencyConfiguration
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
override val relatedConfigurationNames: List<String> = listOfNotNull(
|
||||
apiConfigurationName,
|
||||
implementationConfigurationName,
|
||||
compileOnlyConfigurationName,
|
||||
runtimeOnlyConfigurationName,
|
||||
compileDependencyConfigurationName,
|
||||
runtimeDependencyConfigurationName
|
||||
)
|
||||
|
||||
override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) {
|
||||
HasKotlinDependencies(project, configurations).dependencies(configure)
|
||||
}
|
||||
|
||||
+1
-3
@@ -219,9 +219,7 @@ private fun KotlinTargetComponent.findUsageContext(configurationName: String): U
|
||||
return usageContexts.find { usageContext ->
|
||||
if (usageContext !is KotlinUsageContext) return@find false
|
||||
val compilation = usageContext.compilation
|
||||
@Suppress("DEPRECATION")
|
||||
configurationName in compilation.relatedConfigurationNames ||
|
||||
configurationName == compilation.target.apiElementsConfigurationName ||
|
||||
configurationName == compilation.target.apiElementsConfigurationName ||
|
||||
configurationName == compilation.target.runtimeElementsConfigurationName
|
||||
}
|
||||
}
|
||||
-7
@@ -63,13 +63,6 @@ interface GradleKpmFragment : KpmFragment, HasKotlinDependencies, GradleKpmFragm
|
||||
|
||||
override val runtimeOnlyConfigurationName: String
|
||||
get() = runtimeOnlyConfiguration.name
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
@Suppress("DEPRECATION")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = super.relatedConfigurationNames +
|
||||
// TODO: resolvable metadata configurations?
|
||||
listOf(transitiveApiConfiguration.name, transitiveImplementationConfiguration.name)
|
||||
}
|
||||
|
||||
val GradleKpmFragment.path: String
|
||||
|
||||
+9
-2
@@ -40,8 +40,15 @@ internal abstract class KotlinSourceSetFactory<T : KotlinSourceSet> internal con
|
||||
}
|
||||
|
||||
private fun defineSourceSetConfigurations(project: Project, sourceSet: KotlinSourceSet) = with(project.configurations) {
|
||||
@Suppress("DEPRECATION")
|
||||
sourceSet.relatedConfigurationNames.forEach { configurationName ->
|
||||
val configurationNames = sourceSet.run {
|
||||
listOfNotNull(
|
||||
apiConfigurationName,
|
||||
implementationConfigurationName,
|
||||
compileOnlyConfigurationName,
|
||||
runtimeOnlyConfigurationName,
|
||||
)
|
||||
}
|
||||
configurationNames.forEach { configurationName ->
|
||||
maybeCreate(configurationName).apply {
|
||||
if (!configurationName.endsWith(METADATA_CONFIGURATION_NAME_SUFFIX)) {
|
||||
isCanBeResolved = false
|
||||
|
||||
-5
@@ -60,11 +60,6 @@ open class KotlinJsCompilation @Inject internal constructor(
|
||||
val publicPackageJsonConfigurationName
|
||||
get() = compilation.disambiguateName("publicPackageJsonConfiguration")
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
@Suppress("DEPRECATION")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = super.relatedConfigurationNames + npmAggregatedConfigurationName + publicPackageJsonConfigurationName
|
||||
|
||||
override fun getAttributes(): AttributeContainer {
|
||||
return compilation.attributes
|
||||
}
|
||||
|
||||
-9
@@ -49,13 +49,4 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor(
|
||||
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
||||
get() = androidVariant.getJavaTaskProvider()
|
||||
|
||||
@Deprecated("Scheduled for removal with Kotlin 2.0")
|
||||
@Suppress("DEPRECATION")
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = compilation.relatedConfigurationNames + listOf(
|
||||
"${androidVariant.name}ApiElements",
|
||||
"${androidVariant.name}RuntimeElements",
|
||||
androidVariant.compileConfiguration.name,
|
||||
androidVariant.runtimeConfiguration.name
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user