[native-gradle-plugin] Respected changed cache format
This commit is contained in:
+2
-2
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.tasks.CacheBuilder
|
||||
import org.jetbrains.kotlin.gradle.tasks.addArg
|
||||
import org.jetbrains.kotlin.gradle.utils.lifecycleWithDuration
|
||||
import org.jetbrains.kotlin.gradle.utils.listFilesOrEmpty
|
||||
import org.jetbrains.kotlin.konan.library.KONAN_PLATFORM_LIBS_NAME_PREFIX
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
@@ -73,9 +74,8 @@ internal class PlatformLibrariesGenerator(val project: Project, val konanTarget:
|
||||
val cacheDirectory = CacheBuilder.getRootCacheDirectory(
|
||||
File(project.konanHome), konanTarget, true, project.konanCacheKind
|
||||
)
|
||||
val presentCacheFiles = cacheDirectory.listFiles().orEmpty().map { it.name }.toSet()
|
||||
return presentDefs.toPlatformLibNames().all {
|
||||
CacheBuilder.getCacheFileName(it, project.konanCacheKind, konanTarget) in presentCacheFiles
|
||||
cacheDirectory.resolve(CacheBuilder.getCacheFileName(it, project.konanCacheKind)).listFilesOrEmpty().isNotEmpty()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
-5
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.gradle.targets.native.internal.isAllowCommonizer
|
||||
import org.jetbrains.kotlin.gradle.utils.getValue
|
||||
import org.jetbrains.kotlin.gradle.utils.klibModuleName
|
||||
import org.jetbrains.kotlin.gradle.utils.listFilesOrEmpty
|
||||
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||
import org.jetbrains.kotlin.konan.properties.saveToFile
|
||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||
@@ -727,7 +728,7 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) {
|
||||
dfs(library)
|
||||
|
||||
for (library in sortedLibraries) {
|
||||
if (File(cacheDirectory, library.uniqueName.cachedName).exists())
|
||||
if (File(cacheDirectory, library.uniqueName.cachedName).listFilesOrEmpty().isNotEmpty())
|
||||
continue
|
||||
project.logger.info("Compiling ${library.uniqueName} to cache")
|
||||
val args = mutableListOf(
|
||||
@@ -762,14 +763,14 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) {
|
||||
}
|
||||
|
||||
private val String.cachedName
|
||||
get() = getCacheFileName(this, konanCacheKind, compilation.konanTarget)
|
||||
get() = getCacheFileName(this, konanCacheKind)
|
||||
|
||||
private fun ensureCompilerProvidedLibPrecached(platformLibName: String, platformLibs: Map<String, File>, visitedLibs: MutableSet<String>) {
|
||||
if (platformLibName in visitedLibs)
|
||||
return
|
||||
visitedLibs += platformLibName
|
||||
val platformLib = platformLibs[platformLibName] ?: error("$platformLibName is not found in platform libs")
|
||||
if (File(rootCacheDirectory, platformLibName.cachedName).exists())
|
||||
if (File(rootCacheDirectory, platformLibName.cachedName).listFilesOrEmpty().isNotEmpty())
|
||||
return
|
||||
val unresolvedDependencies = resolveSingleFileKlib(
|
||||
KFile(platformLib.absolutePath),
|
||||
@@ -835,9 +836,9 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) {
|
||||
return konanHome.resolve("klib/cache/$optionsAwareCacheName")
|
||||
}
|
||||
|
||||
internal fun getCacheFileName(baseName: String, cacheKind: NativeCacheKind, konanTarget: KonanTarget): String =
|
||||
internal fun getCacheFileName(baseName: String, cacheKind: NativeCacheKind): String =
|
||||
cacheKind.outputKind?.let {
|
||||
"${it.prefix(konanTarget)}${baseName}-cache${it.suffix(konanTarget)}"
|
||||
"${baseName}-cache"
|
||||
} ?: error("No output for kind $cacheKind")
|
||||
|
||||
internal fun cacheWorksFor(target: KonanTarget) =
|
||||
|
||||
+3
-1
@@ -45,4 +45,6 @@ internal fun File.isParentOf(childCandidate: File, strict: Boolean = false): Boo
|
||||
}
|
||||
|
||||
internal fun File.canonicalPathWithoutExtension(): String =
|
||||
canonicalPath.substringBeforeLast(".")
|
||||
canonicalPath.substringBeforeLast(".")
|
||||
|
||||
internal fun File.listFilesOrEmpty() = (if (exists()) listFiles() else null).orEmpty()
|
||||
Reference in New Issue
Block a user