Add verbose mode to build reports
#KT-12700 Verbose mode can be enabled by adding `kotlin.build.report.verbose=true` to `gradle.properties` file.
This commit is contained in:
@@ -1,17 +1,6 @@
|
||||
/*
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental
|
||||
@@ -23,25 +12,8 @@ interface ICReporter {
|
||||
fun report(message: () -> String)
|
||||
fun reportVerbose(message: () -> String)
|
||||
|
||||
fun reportCompileIteration(incremental: Boolean, sourceFiles: Collection<File>, exitCode: ExitCode) {}
|
||||
|
||||
fun reportMarkDirtyClass(affectedFiles: Iterable<File>, classFqName: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty class $classFqName")
|
||||
}
|
||||
|
||||
fun reportMarkDirtyMember(affectedFiles: Iterable<File>, scope: String, name: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty member $scope#$name")
|
||||
}
|
||||
|
||||
fun reportMarkDirty(affectedFiles: Iterable<File>, reason: String) {
|
||||
affectedFiles.forEach { file ->
|
||||
reportVerbose { "${pathsAsString(file)} is marked dirty: $reason" }
|
||||
}
|
||||
}
|
||||
|
||||
fun pathsAsString(files: Iterable<File>): String =
|
||||
files.joinToString { it.canonicalPath }
|
||||
|
||||
fun pathsAsString(vararg files: File): String =
|
||||
pathsAsString(files.toList())
|
||||
}
|
||||
fun reportCompileIteration(incremental: Boolean, sourceFiles: Collection<File>, exitCode: ExitCode)
|
||||
fun reportMarkDirtyClass(affectedFiles: Iterable<File>, classFqName: String)
|
||||
fun reportMarkDirtyMember(affectedFiles: Iterable<File>, scope: String, name: String)
|
||||
fun reportMarkDirty(affectedFiles: Iterable<File>, reason: String)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.incremental
|
||||
|
||||
import java.io.File
|
||||
|
||||
abstract class ICReporterBase(private val pathsBase: File? = null) : ICReporter {
|
||||
override fun reportMarkDirtyClass(affectedFiles: Iterable<File>, classFqName: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty class $classFqName")
|
||||
}
|
||||
|
||||
override fun reportMarkDirtyMember(affectedFiles: Iterable<File>, scope: String, name: String) {
|
||||
reportMarkDirty(affectedFiles, "dirty member $scope#$name")
|
||||
}
|
||||
|
||||
override fun reportMarkDirty(affectedFiles: Iterable<File>, reason: String) {
|
||||
affectedFiles.forEach { file ->
|
||||
reportVerbose { "${pathsAsString(file)} is marked dirty: $reason" }
|
||||
}
|
||||
}
|
||||
|
||||
protected fun relativizeIfPossible(files: Iterable<File>): List<File> =
|
||||
files.map { it.relativeOrCanonical() }
|
||||
|
||||
protected fun pathsAsString(files: Iterable<File>): String =
|
||||
relativizeIfPossible(files).map { it.path }.sorted().joinToString()
|
||||
|
||||
protected fun pathsAsString(vararg files: File): String =
|
||||
pathsAsString(files.toList())
|
||||
|
||||
protected fun File.relativeOrCanonical(): File =
|
||||
pathsBase?.let { relativeToOrNull(it) } ?: canonicalFile
|
||||
}
|
||||
Reference in New Issue
Block a user