[Gradle] Make evaluation of rootCacheDirectory lazy in Native task
It was broken due to 91779c298e5a819345a09c5bc9cca1b7c4a18797 And this change makes it behave as it was before adding support for Configuration Cache.
This commit is contained in:
+5
-3
@@ -875,13 +875,15 @@ internal class CacheBuilder(
|
|||||||
val runnerSettings: KotlinNativeCompilerRunner.Settings,
|
val runnerSettings: KotlinNativeCompilerRunner.Settings,
|
||||||
val konanCacheKind: NativeCacheKind,
|
val konanCacheKind: NativeCacheKind,
|
||||||
val libraries: FileCollection,
|
val libraries: FileCollection,
|
||||||
val rootCacheDirectory: File,
|
rootCacheDirectoryProvider: () -> File,
|
||||||
val gradleUserHomeDir: File,
|
val gradleUserHomeDir: File,
|
||||||
val binary: NativeBinary,
|
val binary: NativeBinary,
|
||||||
val konanTarget: KonanTarget,
|
val konanTarget: KonanTarget,
|
||||||
val kotlinOptions: KotlinCommonToolOptions,
|
val kotlinOptions: KotlinCommonToolOptions,
|
||||||
val externalDependenciesArgs: List<String>
|
val externalDependenciesArgs: List<String>
|
||||||
) {
|
) {
|
||||||
|
val rootCacheDirectory by lazy(rootCacheDirectoryProvider)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
operator fun invoke(
|
operator fun invoke(
|
||||||
project: Project,
|
project: Project,
|
||||||
@@ -895,7 +897,7 @@ internal class CacheBuilder(
|
|||||||
runnerSettings = KotlinNativeCompilerRunner.Settings(project),
|
runnerSettings = KotlinNativeCompilerRunner.Settings(project),
|
||||||
konanCacheKind = konanCacheKind,
|
konanCacheKind = konanCacheKind,
|
||||||
libraries = binary.compilation.compileDependencyFiles.filterOutPublishableInteropLibs(project),
|
libraries = binary.compilation.compileDependencyFiles.filterOutPublishableInteropLibs(project),
|
||||||
rootCacheDirectory = getRootCacheDirectory(File(project.konanHome), konanTarget, binary.debuggable, konanCacheKind),
|
rootCacheDirectoryProvider = { getRootCacheDirectory(File(project.konanHome), konanTarget, binary.debuggable, konanCacheKind) },
|
||||||
gradleUserHomeDir = project.gradle.gradleUserHomeDir,
|
gradleUserHomeDir = project.gradle.gradleUserHomeDir,
|
||||||
binary, konanTarget, kotlinOptions, externalDependenciesArgs
|
binary, konanTarget, kotlinOptions, externalDependenciesArgs
|
||||||
)
|
)
|
||||||
@@ -1105,7 +1107,7 @@ internal class CacheBuilder(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
internal fun getRootCacheDirectory(konanHome: File, target: KonanTarget, debuggable: Boolean, cacheKind: NativeCacheKind): File {
|
internal fun getRootCacheDirectory(konanHome: File, target: KonanTarget, debuggable: Boolean, cacheKind: NativeCacheKind): File {
|
||||||
require(cacheKind != NativeCacheKind.NONE) { "Usupported cache kind: ${NativeCacheKind.NONE}" }
|
require(cacheKind != NativeCacheKind.NONE) { "Unsupported cache kind: ${NativeCacheKind.NONE}" }
|
||||||
val optionsAwareCacheName = "$target${if (debuggable) "-g" else ""}$cacheKind"
|
val optionsAwareCacheName = "$target${if (debuggable) "-g" else ""}$cacheKind"
|
||||||
return konanHome.resolve("klib/cache/$optionsAwareCacheName")
|
return konanHome.resolve("klib/cache/$optionsAwareCacheName")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user