[Gradle] Fix kotlin-native-gradle-plugin to be compatible with KonanToolRunner

KonanToolRunner was changed to be compatible with
Gradle Configuration Cache.
This commit is contained in:
Anton Lakotka
2022-06-15 12:24:24 +02:00
committed by Space
parent 98c47a8a51
commit 2f5ae70cef
2 changed files with 12 additions and 3 deletions
@@ -39,6 +39,7 @@ internal fun KonanToolRunner.run(vararg args: String) = run(args.toList())
private const val runFromDaemonPropertyName = "kotlin.native.tool.runFromDaemon"
@Suppress("DEPRECATION") // calling KotlinToolRunner(project) constructor is deprecated
internal abstract class KonanCliRunner(
protected val toolName: String,
project: Project,
@@ -89,8 +90,7 @@ internal abstract class KonanCliRunner(
// A separate map for each build for automatic cleaning the daemon after the build have finished.
@Suppress("UNCHECKED_CAST")
final override val isolatedClassLoaders get() =
project.project(":kotlin-native").ext["toolClassLoadersMap"] as ConcurrentHashMap<Any, URLClassLoader>
final override val isolatedClassLoaders = project.project(":kotlin-native").ext["toolClassLoadersMap"] as ConcurrentHashMap<Any, URLClassLoader>
override fun transformArgs(args: List<String>) = listOf(toolName) + args
@@ -140,8 +140,10 @@ internal class KonanCliInteropRunner(
additionalJvmArgs: List<String> = emptyList(),
konanHome: String = project.konanHome
) : KonanCliRunner("cinterop", project, additionalJvmArgs, konanHome) {
private val projectDir = project.projectDir.toString()
override fun transformArgs(args: List<String>): List<String> {
return super.transformArgs(args) + listOf("-Xproject-dir", project.projectDir.toString())
return super.transformArgs(args) + listOf("-Xproject-dir", projectDir)
}
override val execEnvironment by lazy {
@@ -25,6 +25,13 @@ import java.util.concurrent.ConcurrentHashMap
abstract class KotlinToolRunner(
private val executionContext: GradleExecutionContext
) {
@Deprecated(
"Using Project object is not compatible with Gradle Configuration Cache",
ReplaceWith("KotlinToolRunner(GradleExecutionContext.fromTaskContext())"),
DeprecationLevel.WARNING
)
constructor(project: Project): this(GradleExecutionContext.fromProject(project))
/**
* Context Services that are required for [KotlinToolRunner] during Gradle Task Execution Phase
*/