diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBuildingTask.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBuildingTask.kt index f4c3c454828..c8aff6a525b 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBuildingTask.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBuildingTask.kt @@ -17,10 +17,6 @@ import org.jetbrains.kotlin.gradle.plugin.konan.KonanToolRunner /** Base class for both interop and compiler tasks. */ abstract class KonanBuildingTask: KonanArtifactWithLibrariesTask(), KonanBuildingSpec { - - @get:Internal - internal abstract val toolRunner: KonanToolRunner - override fun init(config: KonanBuildingConfig<*>, destinationDir: File, artifactName: String, target: KonanTarget) { super.init(config, destinationDir, artifactName, target) } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt index a27d24212bd..b049f5f29f6 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt @@ -21,9 +21,6 @@ import javax.inject.Inject */ abstract class KonanCompileTask @Inject constructor(private val layout: ProjectLayout): KonanBuildingTask(), KonanCompileSpec { - @get:Internal - override val toolRunner = KonanCliCompilerRunner(project, KonanCliRunnerIsolatedClassLoadersService.attachingToTask(this), project.konanExtension.jvmArgs) - abstract val produce: CompilerOutputKind @Internal get @@ -331,11 +328,15 @@ abstract class KonanCompileTask @Inject constructor(private val layout: ProjectL } // endregion + @get:Internal + val isolatedClassLoadersService = KonanCliRunnerIsolatedClassLoadersService.attachingToTask(this) + override fun run() { destinationDir.mkdirs() if (dumpParameters) { dumpProperties(this) } + val toolRunner = KonanCliCompilerRunner(project, isolatedClassLoadersService, project.konanExtension.jvmArgs) if (enableTwoStageCompilation) { logger.info("Start two-stage compilation") val intermediateDir = konanBuildRoot diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt index 9bd79e801fd..6a0f5cc54a6 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt @@ -28,11 +28,6 @@ import javax.inject.Inject abstract class KonanInteropTask @Inject constructor(private val workerExecutor: WorkerExecutor) : KonanBuildingTask(), KonanInteropSpec { - private val interopRunner = KonanCliInteropRunner(project, KonanCliRunnerIsolatedClassLoadersService.attachingToTask(this), project.konanExtension.jvmArgs) - - @get:Internal - override val toolRunner: KonanToolRunner = interopRunner - override fun init(config: KonanBuildingConfig<*>, destinationDir: File, artifactName: String, target: KonanTarget) { super.init(config, destinationDir, artifactName, target) this.notCompatibleWithConfigurationCache("Unsupported inputs") @@ -183,7 +178,11 @@ abstract class KonanInteropTask @Inject constructor(private val workerExecutor: } } + @get:Internal + val isolatedClassLoadersService = KonanCliRunnerIsolatedClassLoadersService.attachingToTask(this) + override fun run() { + val interopRunner = KonanCliInteropRunner(project, isolatedClassLoadersService, project.konanExtension.jvmArgs) interopRunner.init(target) destinationDir.mkdirs() @@ -193,13 +192,13 @@ abstract class KonanInteropTask @Inject constructor(private val workerExecutor: val args = buildArgs() if (enableParallel) { val workQueue = workerExecutor.noIsolation() - interchangeBox[this.path] = toolRunner + interchangeBox[this.path] = interopRunner workQueue.submit(RunTool::class.java) { taskName = path this.args = args } } else { - toolRunner.run(args) + interopRunner.run(args) } } }