diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/nativeToolRunners.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/nativeToolRunners.kt index 511ab7eeb06..43342f678d6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/nativeToolRunners.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/nativeToolRunners.kt @@ -81,8 +81,8 @@ internal abstract class KotlinNativeToolRunner( final override fun getCustomJvmArgs() = project.jvmArgs } -/** Kotlin/Native C-interop tool runner */ -internal class KotlinNativeCInteropRunner(project: Project) : KotlinNativeToolRunner("cinterop", project) { +/** A common ancestor for all runners that run the cinterop tool. */ +internal abstract class AbstractKotlinNativeCInteropRunner(toolName: String, project: Project) : KotlinNativeToolRunner(toolName, project) { override val mustRunViaExec get() = true override val environment by lazy { @@ -110,6 +110,9 @@ internal class KotlinNativeCInteropRunner(project: Project) : KotlinNativeToolRu } } +/** Kotlin/Native C-interop tool runner */ +internal class KotlinNativeCInteropRunner(project: Project) : AbstractKotlinNativeCInteropRunner("cinterop", project) + /** Kotlin/Native compiler runner */ internal class KotlinNativeCompilerRunner(project: Project) : KotlinNativeToolRunner("konanc", project) { private val useArgFile get() = project.disableKonanDaemon @@ -138,13 +141,10 @@ internal class KotlinNativeKlibRunner(project: Project) : KotlinNativeToolRunner override val mustRunViaExec get() = project.disableKonanDaemon } -/** Platform libraries generation tool. */ +/** Platform libraries generation tool. Runs the cinterop tool under the hood. */ internal class KotlinNativeLibraryGenerationRunner(project: Project) : - KotlinNativeToolRunner("generatePlatformLibraries", project) + AbstractKotlinNativeCInteropRunner("generatePlatformLibraries", project) { - // Library generator starts the interop tool which cannot be executed in daemon. - override val mustRunViaExec: Boolean get() = true - // The library generator works for a long time so enabling C2 can improve performance. override val disableC2: Boolean = false } \ No newline at end of file