[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
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import org.gradle.BuildAdapter
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.invocation.Gradle
|
|
||||||
import org.jetbrains.kotlin.compilerRunner.konanHome
|
import org.jetbrains.kotlin.compilerRunner.konanHome
|
||||||
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
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.targets.native.internal.setUpKotlinNativePlatformDependencies
|
||||||
import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader
|
import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader
|
||||||
import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject
|
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.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
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.target.HostManager
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyDirectories
|
import org.jetbrains.kotlin.konan.util.DependencyDirectories
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.nio.file.Files
|
||||||
|
|
||||||
class NativeCompilerDownloader(
|
class NativeCompilerDownloader(
|
||||||
val project: Project,
|
val project: Project,
|
||||||
@@ -127,9 +128,23 @@ class NativeCompilerDownloader(
|
|||||||
|
|
||||||
logger.lifecycle("Unpack Kotlin/Native compiler to $compilerDirectory")
|
logger.lifecycle("Unpack Kotlin/Native compiler to $compilerDirectory")
|
||||||
logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") {
|
logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") {
|
||||||
project.copy {
|
val tmpDir = Files.createTempDirectory("").toFile()
|
||||||
it.from(archiveFileTree(archive))
|
try {
|
||||||
it.into(DependencyDirectories.localKonanDir)
|
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