[Gradle] Move pluginConfiguration into KotlinCompilationConfigurationsContainer
^KT-54312 Verification Pending
This commit is contained in:
committed by
Space Team
parent
b383e7cd38
commit
b7e2923103
-19
@@ -28,7 +28,6 @@ import org.gradle.api.tasks.bundling.Zip
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.gradle.language.jvm.tasks.ProcessResources
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.internal.reorderPluginClasspathDependencies
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
@@ -274,22 +273,6 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
||||
val target = compilation.target
|
||||
val configurations = target.project.configurations
|
||||
|
||||
configurations.maybeCreate(compilation.pluginConfigurationName).apply {
|
||||
addGradlePluginMetadataAttributes(project)
|
||||
|
||||
if (target.platformType == KotlinPlatformType.native) {
|
||||
extendsFrom(configurations.getByName(NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME))
|
||||
|
||||
isTransitive = false
|
||||
} else {
|
||||
extendsFrom(target.project.commonKotlinPluginClasspath)
|
||||
}
|
||||
isVisible = false
|
||||
isCanBeConsumed = false
|
||||
description = "Kotlin compiler plugins for $compilation"
|
||||
reorderPluginClasspathDependencies()
|
||||
}
|
||||
|
||||
val compileConfiguration = configurations.findByName(compilation.deprecatedCompileConfigurationName)?.apply {
|
||||
isCanBeConsumed = false
|
||||
setupAsLocalTargetSpecificConfigurationIfSupported(target)
|
||||
@@ -552,5 +535,3 @@ private fun Configuration.setJavaTargetEnvironmentAttributeIfSupported(project:
|
||||
}
|
||||
|
||||
internal val Project.commonKotlinPluginClasspath get() = configurations.getByName(PLUGIN_CLASSPATH_CONFIGURATION_NAME)
|
||||
internal val KotlinCompilation<*>.pluginConfigurationName
|
||||
get() = lowerCamelCaseName(PLUGIN_CLASSPATH_CONFIGURATION_NAME, target.disambiguationClassifier, compilationName)
|
||||
|
||||
+5
-6
@@ -5,10 +5,7 @@ import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
@@ -41,10 +38,12 @@ class SubpluginEnvironment(
|
||||
|
||||
if (kotlinCompilation is AbstractKotlinNativeCompilation && !kotlinCompilation.useGenericPluginArtifact) {
|
||||
subplugin.getPluginArtifactForNative()?.let { artifact ->
|
||||
project.addMavenDependency(kotlinCompilation.pluginConfigurationName, artifact)
|
||||
project.addMavenDependency(kotlinCompilation.internal.configurations.pluginConfiguration.name, artifact)
|
||||
}
|
||||
} else {
|
||||
project.addMavenDependency(kotlinCompilation.pluginConfigurationName, subplugin.getPluginArtifact())
|
||||
project.addMavenDependency(
|
||||
kotlinCompilation.internal.configurations.pluginConfiguration.name, subplugin.getPluginArtifact()
|
||||
)
|
||||
}
|
||||
|
||||
val subpluginOptionsProvider = subplugin.applyToCompilation(kotlinCompilation)
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import org.gradle.api.file.FileCollection
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationDependencyConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationModuleManager
|
||||
import org.jetbrains.kotlin.gradle.utils.ObservableSet
|
||||
import org.jetbrains.kotlin.tooling.core.MutableExtras
|
||||
@@ -20,7 +20,7 @@ internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : Kotl
|
||||
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
|
||||
val configurations: KotlinCompilationDependencyConfigurationsContainer
|
||||
val configurations: KotlinCompilationConfigurationsContainer
|
||||
val friendPaths: Iterable<FileCollection>
|
||||
val compilationModule: KotlinCompilationModuleManager.CompilationModule
|
||||
val processResourcesTaskName: String?
|
||||
|
||||
+9
-10
@@ -8,33 +8,32 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl
|
||||
import org.gradle.api.Action
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.attributes.Category
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinDependencyHandler
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
|
||||
internal interface KotlinCompilationDependencyConfigurationsContainer {
|
||||
internal interface KotlinCompilationConfigurationsContainer {
|
||||
val apiConfiguration: Configuration
|
||||
val implementationConfiguration: Configuration
|
||||
val compileOnlyConfiguration: Configuration
|
||||
val runtimeOnlyConfiguration: Configuration
|
||||
val compileDependencyConfiguration: Configuration
|
||||
val runtimeDependencyConfiguration: Configuration?
|
||||
val pluginConfiguration: Configuration
|
||||
}
|
||||
|
||||
internal class DefaultKotlinCompilationDependencyConfigurationsContainer(
|
||||
internal class DefaultKotlinCompilationConfigurationsContainer(
|
||||
override val apiConfiguration: Configuration,
|
||||
override val implementationConfiguration: Configuration,
|
||||
override val compileOnlyConfiguration: Configuration,
|
||||
override val runtimeOnlyConfiguration: Configuration,
|
||||
override val compileDependencyConfiguration: Configuration,
|
||||
override val runtimeDependencyConfiguration: Configuration?
|
||||
) : KotlinCompilationDependencyConfigurationsContainer
|
||||
override val runtimeDependencyConfiguration: Configuration?,
|
||||
override val pluginConfiguration: Configuration
|
||||
) : KotlinCompilationConfigurationsContainer
|
||||
|
||||
internal fun HasKotlinDependencies(
|
||||
project: Project, compilationDependencyContainer: KotlinCompilationDependencyConfigurationsContainer
|
||||
project: Project, compilationDependencyContainer: KotlinCompilationConfigurationsContainer
|
||||
): HasKotlinDependencies = object : HasKotlinDependencies {
|
||||
override fun dependencies(configure: KotlinDependencyHandler.() -> Unit): Unit =
|
||||
DefaultKotlinDependencyHandler(this, project).run(configure)
|
||||
+2
-2
@@ -36,7 +36,7 @@ internal class KotlinCompilationImpl @Inject constructor(
|
||||
val target: KotlinTarget,
|
||||
val compilationModule: KotlinCompilationModuleManager.CompilationModule,
|
||||
val sourceSets: KotlinCompilationSourceSetsContainer,
|
||||
val dependencyConfigurations: KotlinCompilationDependencyConfigurationsContainer,
|
||||
val dependencyConfigurations: KotlinCompilationConfigurationsContainer,
|
||||
val compilationTaskNames: KotlinCompilationTaskNamesContainer,
|
||||
val processResourcesTaskName: String?,
|
||||
val output: KotlinCompilationOutput,
|
||||
@@ -61,7 +61,7 @@ internal class KotlinCompilationImpl @Inject constructor(
|
||||
|
||||
val sourceSets get() = params.sourceSets
|
||||
|
||||
override val configurations: KotlinCompilationDependencyConfigurationsContainer
|
||||
override val configurations: KotlinCompilationConfigurationsContainer
|
||||
get() = params.dependencyConfigurations
|
||||
|
||||
override val compilationName: String
|
||||
|
||||
+33
-11
@@ -7,11 +7,12 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory
|
||||
|
||||
import org.gradle.api.attributes.Category
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.jetbrains.kotlin.gradle.internal.reorderPluginClasspathDependencies
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationDependencyConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationDependencyConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.javaSourceSets
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||
@@ -21,13 +22,13 @@ internal sealed class DefaultKotlinCompilationDependencyConfigurationsFactory :
|
||||
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
||||
|
||||
object WithRuntime : DefaultKotlinCompilationDependencyConfigurationsFactory() {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||
return KotlinCompilationDependencyConfigurationsContainer(target, compilationName, withRuntime = true)
|
||||
}
|
||||
}
|
||||
|
||||
object WithoutRuntime : DefaultKotlinCompilationDependencyConfigurationsFactory() {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||
return KotlinCompilationDependencyConfigurationsContainer(target, compilationName, withRuntime = false)
|
||||
}
|
||||
}
|
||||
@@ -36,7 +37,7 @@ internal sealed class DefaultKotlinCompilationDependencyConfigurationsFactory :
|
||||
internal object NativeKotlinCompilationDependencyConfigurationsFactory :
|
||||
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
||||
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||
val naming = ConfigurationNaming.Default(target, compilationName)
|
||||
return KotlinCompilationDependencyConfigurationsContainer(
|
||||
target = target,
|
||||
@@ -51,7 +52,7 @@ internal object NativeKotlinCompilationDependencyConfigurationsFactory :
|
||||
internal object JsKotlinCompilationDependencyConfigurationsFactory :
|
||||
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
||||
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||
val defaultNaming = ConfigurationNaming.Default(target, compilationName)
|
||||
return KotlinCompilationDependencyConfigurationsContainer(
|
||||
target, compilationName, withRuntime = true,
|
||||
@@ -64,7 +65,7 @@ internal object JsKotlinCompilationDependencyConfigurationsFactory :
|
||||
|
||||
internal class JvmWithJavaCompilationDependencyConfigurationsFactory(private val target: KotlinWithJavaTarget<*, *>) :
|
||||
KotlinCompilationImplFactory.KotlinCompilationDependencyConfigurationsFactory {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer {
|
||||
override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer {
|
||||
val javaSourceSet = this.target.javaSourceSets.maybeCreate(compilationName)
|
||||
return KotlinCompilationDependencyConfigurationsContainer(
|
||||
target = target, compilationName = compilationName, withRuntime = true,
|
||||
@@ -119,8 +120,13 @@ private fun KotlinCompilationDependencyConfigurationsContainer(
|
||||
compileOnlyConfigurationName: String = naming.name(compilation, COMPILE_ONLY),
|
||||
runtimeOnlyConfigurationName: String = naming.name(compilation, RUNTIME_ONLY),
|
||||
compileClasspathConfigurationName: String = naming.name(compileClasspath),
|
||||
runtimeClasspathConfigurationName: String = naming.name(runtimeClasspath)
|
||||
): KotlinCompilationDependencyConfigurationsContainer {
|
||||
runtimeClasspathConfigurationName: String = naming.name(runtimeClasspath),
|
||||
pluginConfigurationName: String = lowerCamelCaseName(
|
||||
PLUGIN_CLASSPATH_CONFIGURATION_NAME,
|
||||
target.disambiguationClassifier,
|
||||
compilationName
|
||||
)
|
||||
): KotlinCompilationConfigurationsContainer {
|
||||
val compilationCoordinates = "${target.disambiguationClassifier}/$compilationName"
|
||||
|
||||
val apiConfiguration = target.project.configurations.maybeCreate(apiConfigurationName).apply {
|
||||
@@ -180,12 +186,28 @@ private fun KotlinCompilationDependencyConfigurationsContainer(
|
||||
description = "Runtime classpath of $compilationCoordinates."
|
||||
} else null
|
||||
|
||||
return DefaultKotlinCompilationDependencyConfigurationsContainer(
|
||||
val pluginConfiguration = target.project.configurations.maybeCreate(pluginConfigurationName).apply {
|
||||
addGradlePluginMetadataAttributes(target.project)
|
||||
|
||||
if (target.platformType == KotlinPlatformType.native) {
|
||||
extendsFrom(target.project.configurations.getByName(NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME))
|
||||
isTransitive = false
|
||||
} else {
|
||||
extendsFrom(target.project.commonKotlinPluginClasspath)
|
||||
}
|
||||
isVisible = false
|
||||
isCanBeConsumed = false
|
||||
description = "Kotlin compiler plugins for $compilation"
|
||||
reorderPluginClasspathDependencies()
|
||||
}
|
||||
|
||||
return DefaultKotlinCompilationConfigurationsContainer(
|
||||
apiConfiguration = apiConfiguration,
|
||||
implementationConfiguration = implementationConfiguration,
|
||||
compileOnlyConfiguration = compileOnlyConfiguration,
|
||||
runtimeOnlyConfiguration = runtimeOnlyConfiguration,
|
||||
compileDependencyConfiguration = compileDependencyConfiguration,
|
||||
runtimeDependencyConfiguration = runtimeDependencyConfiguration
|
||||
runtimeDependencyConfiguration = runtimeDependencyConfiguration,
|
||||
pluginConfiguration = pluginConfiguration
|
||||
)
|
||||
}
|
||||
+1
-1
@@ -68,7 +68,7 @@ internal class KotlinCompilationImplFactory(
|
||||
}
|
||||
|
||||
fun interface KotlinCompilationDependencyConfigurationsFactory {
|
||||
fun create(target: KotlinTarget, compilationName: String): KotlinCompilationDependencyConfigurationsContainer
|
||||
fun create(target: KotlinTarget, compilationName: String): KotlinCompilationConfigurationsContainer
|
||||
}
|
||||
|
||||
fun interface KotlinCompilationOutputFactory {
|
||||
|
||||
+1
-3
@@ -533,9 +533,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
.addSubpluginOptions(project, compilation)
|
||||
|
||||
compilation.compileKotlinTaskProvider.configure {
|
||||
it.compilerPluginClasspath = project
|
||||
.configurations
|
||||
.getByName(compilation.pluginConfigurationName)
|
||||
it.compilerPluginClasspath = compilation.configurations.pluginConfiguration
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.dsl.topLevelExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.associateWithClosure
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.report.BuildMetricsService
|
||||
import org.jetbrains.kotlin.gradle.report.BuildReportsService
|
||||
@@ -94,7 +95,7 @@ internal abstract class AbstractKotlinCompileConfig<TASK : AbstractKotlinCompile
|
||||
.value(providers.provider { compilation.associateWithClosure.map { it.name } })
|
||||
.disallowChanges()
|
||||
task.pluginClasspath.from(
|
||||
compilation.project.configurations.getByName(compilation.pluginConfigurationName)
|
||||
compilation.internal.configurations.pluginConfiguration
|
||||
)
|
||||
}
|
||||
task.moduleName.set(providers.provider { compilationProjection.moduleName })
|
||||
|
||||
Reference in New Issue
Block a user