From a3a6c3f0d5321186d771ff555f1c9c15605559c8 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 13 Apr 2020 19:18:32 +0700 Subject: [PATCH] [Gradle, native] Improve logging in CacheBuilder --- .../targets/native/tasks/KotlinNativeTasks.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index 8e8b427a843..bd1c8dae203 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -12,6 +12,7 @@ import org.gradle.api.Project import org.gradle.api.artifacts.* import org.gradle.api.file.FileCollection import org.gradle.api.file.FileTree +import org.gradle.api.logging.Logger import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.api.tasks.compile.AbstractCompile @@ -34,6 +35,8 @@ import org.jetbrains.kotlin.library.* import java.io.File import java.nio.charset.StandardCharsets import java.security.MessageDigest +import org.jetbrains.kotlin.konan.file.File as KFile +import org.jetbrains.kotlin.util.Logger as KLogger // TODO: It's just temporary tasks used while KN isn't integrated with Big Kotlin compilation infrastructure. // region Useful extensions @@ -750,7 +753,9 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) { val artifactsLibraries = artifactsToAddToCache .map { resolveSingleFileKlib( - org.jetbrains.kotlin.konan.file.File(it.file.absolutePath), strategy = nativeSingleFileResolveStrategy + KFile(it.file.absolutePath), + logger = GradleLoggerAdapter(project.logger), + strategy = nativeSingleFileResolveStrategy ) } .associateBy { it.uniqueName } @@ -820,7 +825,9 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) { if (File(rootCacheDirectory, platformLibName.cachedName).exists()) return val unresolvedDependencies = resolveSingleFileKlib( - org.jetbrains.kotlin.konan.file.File(platformLib.absolutePath), strategy = nativeSingleFileResolveStrategy + KFile(platformLib.absolutePath), + logger = GradleLoggerAdapter(project.logger), + strategy = nativeSingleFileResolveStrategy ).unresolvedDependencies for (dependency in unresolvedDependencies) ensureCompilerProvidedLibPrecached(dependency.path, platformLibs, visitedLibs) @@ -865,6 +872,13 @@ internal class CacheBuilder(val project: Project, val binary: NativeBinary) { } } + private class GradleLoggerAdapter(private val gradleLogger: Logger) : KLogger { + override fun log(message: String) = gradleLogger.info(message) + override fun warning(message: String) = gradleLogger.warn(message) + override fun error(message: String) = kotlin.error(message) + override fun fatal(message: String): Nothing = kotlin.error(message) + } + companion object { internal fun getRootCacheDirectory(konanHome: File, target: KonanTarget, debuggable: Boolean, cacheKind: NativeCacheKind): File { require(cacheKind != NativeCacheKind.NONE) { "Usupported cache kind: ${NativeCacheKind.NONE}" }