[Gradle, K/N] Unpack compiler into temp directory then move to proper place
#KT-39016 Fixed
This commit is contained in:
-3
@@ -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
|
||||
|
||||
+18
-3
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user