From 6ab868ae33ab979e8a6c5b8d20cbce44146a585c Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Tue, 1 Mar 2016 15:56:03 +0300 Subject: [PATCH] Print file paths relative to project root in gradle incremental compilation logs KT-8487 --- .../src/org/jetbrains/kotlin/incremental/buildUtil.kt | 6 ++++-- .../kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/build-common/src/org/jetbrains/kotlin/incremental/buildUtil.kt b/build-common/src/org/jetbrains/kotlin/incremental/buildUtil.kt index 741e4ca0ebe..ad255176329 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/buildUtil.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/buildUtil.kt @@ -220,13 +220,14 @@ fun mapLookupSymbolsToFiles( lookupStorage: LookupStorage, lookupSymbols: Iterable, log: (String)->Unit, + getLogFilePath: (File)->String = { it.canonicalPath }, excludes: Set = emptySet() ): Set { val dirtyFiles = HashSet() for (lookup in lookupSymbols) { val affectedFiles = lookupStorage.get(lookup).map(::File).filter { it !in excludes } - log("${lookup.scope}#${lookup.name} caused recompilation of: $affectedFiles") + log("${lookup.scope}#${lookup.name} caused recompilation of: ${affectedFiles.map(getLogFilePath)}") dirtyFiles.addAll(affectedFiles) } @@ -237,6 +238,7 @@ fun mapClassesFqNamesToFiles( caches: Iterable>, classesFqNames: Iterable, log: (String)->Unit, + getLogFilePath: (File)->String = { it.canonicalPath }, excludes: Set = emptySet() ): Set { val dirtyFiles = HashSet() @@ -246,7 +248,7 @@ fun mapClassesFqNamesToFiles( val srcFile = cache.getSourceFileIfClass(dirtyClassFqName) if (srcFile == null || srcFile in excludes) continue - log("Class $dirtyClassFqName caused recompilation of: $srcFile") + log("Class $dirtyClassFqName caused recompilation of: ${getLogFilePath(srcFile)}") dirtyFiles.add(srcFile) } } diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 7be6abbe759..82d1a2b921e 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -161,8 +161,6 @@ open class KotlinCompile() : AbstractKotlinCompile() { "compileReleaseUnitTestKotlin" to "compileReleaseKotlin" ) - fun projectRelativePath(f: File) = f.toRelativeString(project.projectDir) - // TODO: find out whether we really need to be able to override destination dir here, and how it should work with destinationDir property private val compilerDestinationDir: String get() = if (StringUtils.isEmpty(kotlinOptions.destination)) { kotlinDestinationDir?.path.orEmpty() } else { kotlinOptions.destination } @@ -220,6 +218,8 @@ open class KotlinCompile() : AbstractKotlinCompile() { override fun callCompiler(args: K2JVMCompilerArguments, sources: List, isIncrementalRequested: Boolean, modified: List, removed: List, cachesBaseDir: File) { + fun projectRelativePath(f: File) = f.toRelativeString(project.projectDir) + if (experimentalIncremental) { // TODO: consider other ways to pass incremental flag to compiler/builder System.setProperty("kotlin.incremental.compilation", "true") @@ -280,7 +280,7 @@ open class KotlinCompile() : AbstractKotlinCompile() { if (lookupSymbols.any()) { val kotlinModifiedFilesSet = modifiedKotlinFiles.toHashSet() - val dirtyFilesFromLookups = mapLookupSymbolsToFiles(lookupStorage, lookupSymbols, logAction, excludes = kotlinModifiedFilesSet) + val dirtyFilesFromLookups = mapLookupSymbolsToFiles(lookupStorage, lookupSymbols, logAction, ::projectRelativePath, excludes = kotlinModifiedFilesSet) modifiedKotlinFiles.addAll(dirtyFilesFromLookups) } @@ -434,8 +434,8 @@ open class KotlinCompile() : AbstractKotlinCompile() { if (!isIncrementalDecided) break; val (dirtyLookupSymbols, dirtyClassFqNames) = compilationResult.getDirtyData(caches.values, logAction) - sourcesToCompile = mapLookupSymbolsToFiles(lookupStorage, dirtyLookupSymbols, logAction, excludes = sourcesToCompile) + - mapClassesFqNamesToFiles(caches.values, dirtyClassFqNames, logAction) + sourcesToCompile = mapLookupSymbolsToFiles(lookupStorage, dirtyLookupSymbols, logAction, ::projectRelativePath, excludes = sourcesToCompile) + + mapClassesFqNamesToFiles(caches.values, dirtyClassFqNames, logAction, ::projectRelativePath) if (currentRemoved.any()) { currentRemoved = listOf()