Skip to content

Commit

Permalink
Fix Jvm target tries to use removed configuration.
Browse files Browse the repository at this point in the history
KT-44949 In Progress
KT-44957 Fixed
  • Loading branch information
Tapchicoma authored and TeamCityServer committed Mar 5, 2021
1 parent 117cfc7 commit 297aa17
Showing 1 changed file with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.tasks.testing.Test
import org.gradle.jvm.tasks.Jar
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
Expand Down Expand Up @@ -151,23 +152,37 @@ open class KotlinJvmTarget @Inject constructor(

// 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(
javaSourceSet.compileConfigurationName.takeIf { project.configurations.findByName(it) != null },
compileConfigurationName,
javaSourceSet.compileOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName
).forEach { configurationName ->
project.addExtendsFromRelation(compilation.compileDependencyConfigurationName, configurationName)
}

val runtimeConfigurationName = if (areRuntimeOrCompileConfigurationsAvailable()) {
javaSourceSet.runtimeConfigurationName.takeIf { project.configurations.findByName(it) != null }
} else null

listOfNotNull(
javaSourceSet.runtimeConfigurationName.takeIf { project.configurations.findByName(it) != null },
runtimeConfigurationName,
javaSourceSet.runtimeOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName
).forEach { 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")
}

0 comments on commit 297aa17

Please sign in to comment.