Fix Jvm target tries to use removed configuration.

KT-44949 In Progress
KT-44957 Fixed
This commit is contained in:
Yahor Berdnikau
2021-02-22 11:43:02 +01:00
committed by TeamCityServer
parent 117cfc763a
commit 297aa17b6e
@@ -15,6 +15,7 @@ import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.testing.Test import org.gradle.api.tasks.testing.Test
import org.gradle.jvm.tasks.Jar import org.gradle.jvm.tasks.Jar
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
@@ -151,8 +152,12 @@ open class KotlinJvmTarget @Inject constructor(
// Add the Java source set dependencies to the Kotlin compilation compile & runtime configurations: // Add the Java source set dependencies to the Kotlin compilation compile & runtime configurations:
val compileConfigurationName = if (areRuntimeOrCompileConfigurationsAvailable()) {
javaSourceSet.compileConfigurationName.takeIf { project.configurations.findByName(it) != null }
} else null
listOfNotNull( listOfNotNull(
javaSourceSet.compileConfigurationName.takeIf { project.configurations.findByName(it) != null }, compileConfigurationName,
javaSourceSet.compileOnlyConfigurationName, javaSourceSet.compileOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null }, javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName javaSourceSet.implementationConfigurationName
@@ -160,8 +165,12 @@ open class KotlinJvmTarget @Inject constructor(
project.addExtendsFromRelation(compilation.compileDependencyConfigurationName, configurationName) project.addExtendsFromRelation(compilation.compileDependencyConfigurationName, configurationName)
} }
val runtimeConfigurationName = if (areRuntimeOrCompileConfigurationsAvailable()) {
javaSourceSet.runtimeConfigurationName.takeIf { project.configurations.findByName(it) != null }
} else null
listOfNotNull( listOfNotNull(
javaSourceSet.runtimeConfigurationName.takeIf { project.configurations.findByName(it) != null }, runtimeConfigurationName,
javaSourceSet.runtimeOnlyConfigurationName, javaSourceSet.runtimeOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null }, javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName javaSourceSet.implementationConfigurationName
@@ -169,5 +178,11 @@ open class KotlinJvmTarget @Inject constructor(
project.addExtendsFromRelation(compilation.runtimeDependencyConfigurationName, configurationName) project.addExtendsFromRelation(compilation.runtimeDependencyConfigurationName, configurationName)
} }
} }
/**
* Check if "compile" and "runtime" configurations are still available in current Gradle version.
*/
private fun areRuntimeOrCompileConfigurationsAvailable(): Boolean =
GradleVersion.version(project.gradle.gradleVersion) <= GradleVersion.version("6.8.3")
} }