[Gradle] Move hostSpecificMetadataConfiguration to configuration container
Previously it was declared on KotlinNativeCompilation with extra NativeCompilationDependencyConfigurationsContainer interface. But it is not necessary, and hostSpecificMetadataConfiguration can be placed directly to KotlinCompilationConfigurationsContainer and guarded and created on demand via `withHostSpecificMetadata` flag on a factory method. ^KT-49933
This commit is contained in:
committed by
Space Team
parent
e36338b091
commit
d5936a52f0
+4
-3
@@ -38,9 +38,10 @@ private fun Project.collectAllPlatformCompilationData(): List<SourceSetVisibilit
|
|||||||
|
|
||||||
private fun KotlinCompilation<*>.toPlatformCompilationData() = SourceSetVisibilityProvider.PlatformCompilationData(
|
private fun KotlinCompilation<*>.toPlatformCompilationData() = SourceSetVisibilityProvider.PlatformCompilationData(
|
||||||
allSourceSets = allKotlinSourceSets.map { it.name }.toSet(),
|
allSourceSets = allKotlinSourceSets.map { it.name }.toSet(),
|
||||||
resolvedDependenciesConfiguration = LazyResolvedConfiguration(project.configurations.getByName(compileDependencyConfigurationName)),
|
resolvedDependenciesConfiguration = LazyResolvedConfiguration(internal.configurations.compileDependencyConfiguration),
|
||||||
hostSpecificMetadataConfiguration = (this as? KotlinNativeCompilation)
|
hostSpecificMetadataConfiguration = internal
|
||||||
?.hostSpecificMetadataConfiguration
|
.configurations
|
||||||
|
.hostSpecificMetadataConfiguration
|
||||||
?.let(::LazyResolvedConfiguration)
|
?.let(::LazyResolvedConfiguration)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
@@ -21,6 +21,7 @@ interface KotlinCompilationConfigurationsContainer {
|
|||||||
val runtimeOnlyConfiguration: Configuration
|
val runtimeOnlyConfiguration: Configuration
|
||||||
val compileDependencyConfiguration: Configuration
|
val compileDependencyConfiguration: Configuration
|
||||||
val runtimeDependencyConfiguration: Configuration?
|
val runtimeDependencyConfiguration: Configuration?
|
||||||
|
val hostSpecificMetadataConfiguration: Configuration?
|
||||||
val pluginConfiguration: Configuration
|
val pluginConfiguration: Configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ internal class DefaultKotlinCompilationConfigurationsContainer(
|
|||||||
override val runtimeOnlyConfiguration: Configuration,
|
override val runtimeOnlyConfiguration: Configuration,
|
||||||
override val compileDependencyConfiguration: Configuration,
|
override val compileDependencyConfiguration: Configuration,
|
||||||
override val runtimeDependencyConfiguration: Configuration?,
|
override val runtimeDependencyConfiguration: Configuration?,
|
||||||
|
override val hostSpecificMetadataConfiguration: Configuration?,
|
||||||
override val pluginConfiguration: Configuration
|
override val pluginConfiguration: Configuration
|
||||||
) : KotlinCompilationConfigurationsContainer
|
) : KotlinCompilationConfigurationsContainer
|
||||||
|
|
||||||
|
|||||||
+18
-26
@@ -39,39 +39,17 @@ internal sealed class DefaultKotlinCompilationDependencyConfigurationsFactory :
|
|||||||
internal object NativeKotlinCompilationDependencyConfigurationsFactory :
|
internal object NativeKotlinCompilationDependencyConfigurationsFactory :
|
||||||
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
||||||
|
|
||||||
override fun create(target: KotlinTarget, compilationName: String): NativeCompilationDependencyConfigurationsContainer {
|
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||||
val naming = ConfigurationNaming.Default(target, compilationName)
|
val naming = ConfigurationNaming.Default(target, compilationName)
|
||||||
val baseContainer = KotlinCompilationDependencyConfigurationsContainer(
|
return KotlinCompilationDependencyConfigurationsContainer(
|
||||||
target = target,
|
target = target,
|
||||||
compilationName = compilationName,
|
compilationName = compilationName,
|
||||||
naming = naming,
|
naming = naming,
|
||||||
withRuntime = false,
|
withRuntime = false,
|
||||||
|
withHostSpecificMetadata = true,
|
||||||
compileClasspathConfigurationName = naming.name("compileKlibraries")
|
compileClasspathConfigurationName = naming.name("compileKlibraries")
|
||||||
)
|
)
|
||||||
|
|
||||||
val compilationCoordinates = "${target.disambiguationClassifier}/$compilationName"
|
|
||||||
val project = target.project
|
|
||||||
val hostSpecificMetadataConfiguration: Configuration = project
|
|
||||||
.configurations
|
|
||||||
.maybeCreate(naming.name(compilation, METADATA_CONFIGURATION_NAME_SUFFIX))
|
|
||||||
.apply {
|
|
||||||
markResolvable()
|
|
||||||
isVisible = false
|
|
||||||
description = "Host-specific Metadata dependencies for $compilationCoordinates"
|
|
||||||
extendsFrom(baseContainer.compileDependencyConfiguration)
|
|
||||||
copyAttributes(from = baseContainer.compileDependencyConfiguration.attributes, to = attributes)
|
|
||||||
attributes {
|
|
||||||
it.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NativeCompilationDependencyConfigurationsContainer(baseContainer, hostSpecificMetadataConfiguration)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class NativeCompilationDependencyConfigurationsContainer(
|
|
||||||
baseContainer: KotlinCompilationConfigurationsContainer,
|
|
||||||
val hostSpecificMetadataConfiguration: Configuration?
|
|
||||||
) : KotlinCompilationConfigurationsContainer by baseContainer
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal object JsKotlinCompilationDependencyConfigurationsFactory :
|
internal object JsKotlinCompilationDependencyConfigurationsFactory :
|
||||||
@@ -138,7 +116,7 @@ private const val compileClasspath = "compileClasspath"
|
|||||||
private const val runtimeClasspath = "runtimeClasspath"
|
private const val runtimeClasspath = "runtimeClasspath"
|
||||||
|
|
||||||
private fun KotlinCompilationDependencyConfigurationsContainer(
|
private fun KotlinCompilationDependencyConfigurationsContainer(
|
||||||
target: KotlinTarget, compilationName: String, withRuntime: Boolean,
|
target: KotlinTarget, compilationName: String, withRuntime: Boolean, withHostSpecificMetadata: Boolean = false,
|
||||||
naming: ConfigurationNaming = ConfigurationNaming.Default(target, compilationName),
|
naming: ConfigurationNaming = ConfigurationNaming.Default(target, compilationName),
|
||||||
apiConfigurationName: String = naming.name(compilation, API),
|
apiConfigurationName: String = naming.name(compilation, API),
|
||||||
implementationConfigurationName: String = naming.name(compilation, IMPLEMENTATION),
|
implementationConfigurationName: String = naming.name(compilation, IMPLEMENTATION),
|
||||||
@@ -146,6 +124,7 @@ private fun KotlinCompilationDependencyConfigurationsContainer(
|
|||||||
runtimeOnlyConfigurationName: String = naming.name(compilation, RUNTIME_ONLY),
|
runtimeOnlyConfigurationName: String = naming.name(compilation, RUNTIME_ONLY),
|
||||||
compileClasspathConfigurationName: String = naming.name(compileClasspath),
|
compileClasspathConfigurationName: String = naming.name(compileClasspath),
|
||||||
runtimeClasspathConfigurationName: String = naming.name(runtimeClasspath),
|
runtimeClasspathConfigurationName: String = naming.name(runtimeClasspath),
|
||||||
|
withHostSpecificMetadataConfigurationName: String = naming.name(compilation, METADATA_CONFIGURATION_NAME_SUFFIX),
|
||||||
pluginConfigurationName: String = lowerCamelCaseName(
|
pluginConfigurationName: String = lowerCamelCaseName(
|
||||||
PLUGIN_CLASSPATH_CONFIGURATION_NAME,
|
PLUGIN_CLASSPATH_CONFIGURATION_NAME,
|
||||||
target.disambiguationClassifier,
|
target.disambiguationClassifier,
|
||||||
@@ -240,6 +219,18 @@ private fun KotlinCompilationDependencyConfigurationsContainer(
|
|||||||
description = "Runtime classpath of $compilationCoordinates."
|
description = "Runtime classpath of $compilationCoordinates."
|
||||||
} else null
|
} else null
|
||||||
|
|
||||||
|
val hostSpecificMetadataConfiguration =
|
||||||
|
if (withHostSpecificMetadata) target.project.configurations.maybeCreate(withHostSpecificMetadataConfigurationName).apply {
|
||||||
|
markResolvable()
|
||||||
|
isVisible = false
|
||||||
|
description = "Host-specific Metadata dependencies for $compilationCoordinates"
|
||||||
|
extendsFrom(compileDependencyConfiguration)
|
||||||
|
copyAttributes(from = compileDependencyConfiguration.attributes, to = attributes)
|
||||||
|
attributes {
|
||||||
|
it.attribute(Usage.USAGE_ATTRIBUTE, target.project.usageByName(KotlinUsages.KOTLIN_METADATA))
|
||||||
|
}
|
||||||
|
} else null
|
||||||
|
|
||||||
val pluginConfiguration = target.project.configurations.maybeCreate(pluginConfigurationName).apply {
|
val pluginConfiguration = target.project.configurations.maybeCreate(pluginConfigurationName).apply {
|
||||||
addGradlePluginMetadataAttributes(target.project)
|
addGradlePluginMetadataAttributes(target.project)
|
||||||
|
|
||||||
@@ -263,6 +254,7 @@ private fun KotlinCompilationDependencyConfigurationsContainer(
|
|||||||
runtimeOnlyConfiguration = runtimeOnlyConfiguration,
|
runtimeOnlyConfiguration = runtimeOnlyConfiguration,
|
||||||
compileDependencyConfiguration = compileDependencyConfiguration,
|
compileDependencyConfiguration = compileDependencyConfiguration,
|
||||||
runtimeDependencyConfiguration = runtimeDependencyConfiguration,
|
runtimeDependencyConfiguration = runtimeDependencyConfiguration,
|
||||||
|
hostSpecificMetadataConfiguration = hostSpecificMetadataConfiguration,
|
||||||
pluginConfiguration = pluginConfiguration
|
pluginConfiguration = pluginConfiguration
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
-5
@@ -14,7 +14,6 @@ import org.gradle.api.tasks.TaskProvider
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.NativeKotlinCompilationDependencyConfigurationsFactory.NativeCompilationDependencyConfigurationsContainer
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.NativeCompilerOptions
|
import org.jetbrains.kotlin.gradle.targets.native.NativeCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
@@ -70,10 +69,6 @@ open class KotlinNativeCompilation @Inject internal constructor(
|
|||||||
val binariesTaskName: String
|
val binariesTaskName: String
|
||||||
get() = lowerCamelCaseName(target.disambiguationClassifier, compilation.compilationName, "binaries")
|
get() = lowerCamelCaseName(target.disambiguationClassifier, compilation.compilationName, "binaries")
|
||||||
|
|
||||||
internal val hostSpecificMetadataConfiguration: Configuration? get() {
|
|
||||||
val container = compilation.configurations as? NativeCompilationDependencyConfigurationsContainer
|
|
||||||
return container?.hostSpecificMetadataConfiguration
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinSharedNativeCompilation @Inject internal constructor(
|
open class KotlinSharedNativeCompilation @Inject internal constructor(
|
||||||
|
|||||||
Reference in New Issue
Block a user