[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:
Anton Lakotka
2022-06-08 10:00:03 +02:00
committed by Space
parent edd1d72609
commit ebe7544464
@@ -875,13 +875,15 @@ internal class CacheBuilder(
val runnerSettings: KotlinNativeCompilerRunner.Settings,
val konanCacheKind: NativeCacheKind,
val libraries: FileCollection,
val rootCacheDirectory: File,
rootCacheDirectoryProvider: () -> File,
val gradleUserHomeDir: File,
val binary: NativeBinary,
val konanTarget: KonanTarget,
val kotlinOptions: KotlinCommonToolOptions,
val externalDependenciesArgs: List<String>
) {
val rootCacheDirectory by lazy(rootCacheDirectoryProvider)
companion object {
operator fun invoke(
project: Project,
@@ -895,7 +897,7 @@ internal class CacheBuilder(
runnerSettings = KotlinNativeCompilerRunner.Settings(project),
konanCacheKind = konanCacheKind,
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,
binary, konanTarget, kotlinOptions, externalDependenciesArgs
)
@@ -1105,7 +1107,7 @@ internal class CacheBuilder(
companion object {
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"
return konanHome.resolve("klib/cache/$optionsAwareCacheName")
}