diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt index a0eaa9efceb..ef213bb02cd 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.gradle.plugin.konan +import kotlinBuildProperties import org.gradle.api.Project import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin.ProjectProperty.KONAN_HOME import org.jetbrains.kotlin.konan.target.HostManager @@ -51,7 +52,7 @@ internal abstract class KonanCliRunner( final override val mainClass get() = "org.jetbrains.kotlin.cli.utilities.MainKt" final override val daemonEntryPoint get() = "daemonMain" - final override val mustRunViaExec get() = false.also { System.setProperty(runFromDaemonPropertyName, "true") } + override val mustRunViaExec get() = false.also { System.setProperty(runFromDaemonPropertyName, "true") } final override val execSystemPropertiesBlacklist: Set get() = super.execSystemPropertiesBlacklist + runFromDaemonPropertyName @@ -136,12 +137,19 @@ internal class CliToolConfig(konanHome: String, target: String) : AbstractToolCo /** Kotlin/Native C-interop tool runner */ internal class KonanCliInteropRunner( - project: Project, + private val project: Project, additionalJvmArgs: List = emptyList(), konanHome: String = project.konanHome ) : KonanCliRunner("cinterop", project, additionalJvmArgs, konanHome) { private val projectDir = project.projectDir.toString() + override val mustRunViaExec: Boolean + get() = if (project.kotlinBuildProperties.getBoolean("kotlin.native.allowRunningCinteropInProcess")) { + super.mustRunViaExec + } else { + true + } + override fun transformArgs(args: List): List { return super.transformArgs(args) + listOf("-Xproject-dir", projectDir) }