[Gradle] Fix PlatformCommonizer classpath configuration consumption

Make sure that Commonizer Tasks consume correct classpath configuration

^KT-43293
This commit is contained in:
Anton Lakotka
2022-07-25 15:17:21 +02:00
committed by Space
parent 7fedf22946
commit 51034e4e46
5 changed files with 11 additions and 19 deletions
@@ -8,6 +8,7 @@
package org.jetbrains.kotlin.compilerRunner
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.attributes.Category
import org.gradle.api.attributes.LibraryElements
import org.gradle.api.attributes.Usage
@@ -26,9 +27,9 @@ internal fun GradleCliCommonizer(commonizerToolRunner: KotlinNativeCommonizerToo
})
}
internal fun Project.registerCommonizerClasspathConfigurationIfNecessary() {
if (configurations.findByName(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME) == null) {
project.configurations.create(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME).run {
internal fun Project.maybeCreateCommonizerClasspathConfiguration(): Configuration {
return configurations.findByName(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME)
?: project.configurations.create(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME).run {
isCanBeResolved = true
isCanBeConsumed = false
attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
@@ -40,5 +41,4 @@ internal fun Project.registerCommonizerClasspathConfigurationIfNecessary() {
)
}
}
}
}
@@ -24,7 +24,7 @@ import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging
import org.gradle.api.model.ObjectFactory
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
import org.jetbrains.kotlin.compilerRunner.registerCommonizerClasspathConfigurationIfNecessary
import org.jetbrains.kotlin.compilerRunner.maybeCreateCommonizerClasspathConfiguration
import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.internal.KOTLIN_COMPILER_EMBEDDABLE
import org.jetbrains.kotlin.gradle.internal.KOTLIN_MODULE_GROUP
@@ -159,7 +159,7 @@ abstract class KotlinBasePluginWrapper : DefaultKotlinBasePlugin() {
isTransitive = false
addGradlePluginMetadataAttributes(project)
}
project.registerCommonizerClasspathConfigurationIfNecessary()
project.maybeCreateCommonizerClasspathConfiguration()
project.registerDefaultVariantImplementations()
@@ -15,9 +15,9 @@ import org.gradle.process.ExecOperations
import org.jetbrains.kotlin.commonizer.CommonizerDependency
import org.jetbrains.kotlin.commonizer.TargetedCommonizerDependency
import org.jetbrains.kotlin.commonizer.allLeaves
import org.jetbrains.kotlin.compilerRunner.*
import org.jetbrains.kotlin.compilerRunner.GradleCliCommonizer
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCommonizerToolRunner
import org.jetbrains.kotlin.compilerRunner.KotlinToolRunner
import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
@@ -97,7 +97,6 @@ internal open class CInteropCommonizerTask
private val runnerSettings: Provider<KotlinNativeCommonizerToolRunner.Settings> = kotlinPluginVersion
.zip(customJvmArgs) { pluginVersion, customJvmArgs ->
commonizerClasspath
KotlinNativeCommonizerToolRunner.Settings(
pluginVersion,
commonizerClasspath.files,
@@ -9,8 +9,8 @@ import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.Delete
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.compilerRunner.maybeCreateCommonizerClasspathConfiguration
import org.jetbrains.kotlin.gradle.internal.isInIdeaSync
import org.jetbrains.kotlin.gradle.plugin.KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
import org.jetbrains.kotlin.gradle.plugin.ide.Idea222Api
@@ -77,9 +77,7 @@ internal val Project.commonizeCInteropTask: TaskProvider<CInteropCommonizerTask>
description = "Invokes the commonizer on c-interop bindings of the project"
kotlinPluginVersion.set(getKotlinPluginVersion())
commonizerClasspath.from(
configurations.getByName(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME)
)
commonizerClasspath.from(project.maybeCreateCommonizerClasspathConfiguration())
customJvmArgs.set(PropertiesProvider(project).commonizerJvmArgs)
}
)
@@ -127,10 +125,8 @@ internal val Project.commonizeNativeDistributionTask: TaskProvider<NativeDistrib
description = "Invokes the commonizer on platform libraries provided by the Kotlin/Native distribution"
kotlinPluginVersion.set(getKotlinPluginVersion())
commonizerClasspath.from(
configurations.getByName(KLIB_COMMONIZER_CLASSPATH_CONFIGURATION_NAME)
)
customJvmArgs.set(PropertiesProvider(project).commonizerJvmArgs)
commonizerClasspath.from(rootProject.maybeCreateCommonizerClasspathConfiguration())
customJvmArgs.set(PropertiesProvider(rootProject).commonizerJvmArgs)
}
)
}
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.compilerRunner.*
import org.jetbrains.kotlin.compilerRunner.GradleCliCommonizer
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCommonizerToolRunner
import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.compilerRunner.registerCommonizerClasspathConfigurationIfNecessary
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
@@ -59,7 +58,6 @@ internal open class NativeDistributionCommonizerTask
private val runnerSettings: Provider<KotlinNativeCommonizerToolRunner.Settings> = kotlinPluginVersion
.zip(customJvmArgs) { pluginVersion, customJvmArgs ->
commonizerClasspath
KotlinNativeCommonizerToolRunner.Settings(
pluginVersion,
commonizerClasspath.files,
@@ -103,7 +101,6 @@ internal open class NativeDistributionCommonizerTask
}
init {
project.registerCommonizerClasspathConfigurationIfNecessary()
outputs.upToDateWhen {
commonizerCache.isUpToDate(commonizerTargets)
}