diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeEmbeddableCompilerJarIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeEmbeddableCompilerJarIT.kt index dedde5c5184..c9ff2fb6452 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeEmbeddableCompilerJarIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeEmbeddableCompilerJarIT.kt @@ -55,4 +55,25 @@ class NativeEmbeddableCompilerJarIT : BaseGradleIT() { } } } + + @Test + fun testSwitch() = with(transformNativeTestProjectWithPluginDsl("executables", directoryPrefix = "native-binaries")) { + build(":runDebugExecutableHost") { + assertSuccessful() + checkNativeCompilerClasspath(":linkDebugExecutableHost", ":compileKotlinHost") { + assertTrue(it.includesRegularJar()) + assertFalse(it.includesEmbeddableJar()) + } + } + + build(":clean") {} // Ensure the tasks aren't up-to-date. + + build(":runDebugExecutableHost", "-Pkotlin.native.useEmbeddableCompilerJar=true") { + assertSuccessful() + checkNativeCompilerClasspath(":linkDebugExecutableHost", ":compileKotlinHost") { + assertFalse(it.includesRegularJar()) + assertTrue(it.includesEmbeddableJar()) + } + } + } } 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 6b0e3d354ed..1d2177de3d5 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 @@ -99,7 +99,10 @@ internal abstract class KotlinNativeToolRunner( """.trimIndent() } - final override val isolatedClassLoaderCacheKey get() = project.konanHome + data class IsolatedClassLoaderCacheKey(val classpath: Set) + + // TODO: can't we use this for other implementations too? + final override val isolatedClassLoaderCacheKey get() = IsolatedClassLoaderCacheKey(classpath) override fun transformArgs(args: List) = listOf(toolName) + args