diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt index c837770b03a..9dbd5e5c2f8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt @@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.BuildAdapter import org.gradle.api.Project -import org.gradle.api.invocation.Gradle import org.jetbrains.kotlin.compilerRunner.konanHome import org.jetbrains.kotlin.compilerRunner.konanVersion import org.jetbrains.kotlin.gradle.plugin.* @@ -21,7 +19,6 @@ import org.jetbrains.kotlin.gradle.targets.native.internal.PlatformLibrariesGene import org.jetbrains.kotlin.gradle.targets.native.internal.setUpKotlinNativePlatformDependencies import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject -import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable import org.jetbrains.kotlin.konan.CompilerVersion import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt index e9308816501..76f914e4edd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.konan.MetaVersion import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.util.DependencyDirectories import java.io.File +import java.nio.file.Files class NativeCompilerDownloader( val project: Project, @@ -127,9 +128,23 @@ class NativeCompilerDownloader( logger.lifecycle("Unpack Kotlin/Native compiler to $compilerDirectory") logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") { - project.copy { - it.from(archiveFileTree(archive)) - it.into(DependencyDirectories.localKonanDir) + val tmpDir = Files.createTempDirectory("").toFile() + try { + logger.debug("Unpacking Kotlin/Native compiler to tmp directory $tmpDir") + project.copy { + it.from(archiveFileTree(archive)) + it.into(tmpDir) + } + val compilerTmp = tmpDir.resolve(dependencyNameWithVersion) + if (!compilerTmp.renameTo(compilerDirectory)) { + project.copy { + it.from(compilerTmp) + it.into(compilerDirectory) + } + } + logger.debug("Moved Kotlin/Native compiler from $tmpDir to $compilerDirectory") + } finally { + tmpDir.deleteRecursively() } }