Skip to content

Commit cf92116

Browse files
committed
Refine incremental logs
1. mkdir() before writing logs. In some cases, `build` isn't created by Gradle. 2. Add a timestamp for each build.
1 parent 2360958 commit cf92116

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/Incremental.kt

+11-4
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ class IncrementalContext(
166166

167167
private val baseDir = options.projectBaseDir
168168

169+
private val logsDir = File(baseDir, "build").apply { mkdir() }
170+
private val buildTime = Date().time
171+
169172
private val modified = options.knownModified.map{ it.relativeTo(baseDir) }.toSet()
170173
private val removed = options.knownRemoved.map { it.relativeTo(baseDir) }.toSet()
171174

@@ -262,7 +265,8 @@ class IncrementalContext(
262265
if (!options.incrementalLog)
263266
return
264267

265-
val logFile = File(options.projectBaseDir, "build/kspDirtySetByDeps.log")
268+
val logFile = File(logsDir, "kspDirtySetByDeps.log")
269+
logFile.appendText("=== Build $buildTime ===\n")
266270
logFile.appendText("All Files\n")
267271
ksFiles.forEach { logFile.appendText(" ${it.relativeFile}\n") }
268272
logFile.appendText("Modified\n")
@@ -289,7 +293,8 @@ class IncrementalContext(
289293
}
290294
val outputsToRemove = allOutputs - validOutputs
291295

292-
val logFile = File(options.projectBaseDir, "build/kspDirtySetByOutputs.log")
296+
val logFile = File(logsDir, "kspDirtySetByOutputs.log")
297+
logFile.appendText("=== Build $buildTime ===\n")
293298
logFile.appendText("Dirty sources\n")
294299
dirtyFiles.forEach { logFile.appendText(" $it\n") }
295300
logFile.appendText("Outputs to remove\n")
@@ -301,7 +306,8 @@ class IncrementalContext(
301306
if (!options.incrementalLog)
302307
return
303308

304-
val logFile = File(options.projectBaseDir, "build/kspSourceToOutputs.log")
309+
val logFile = File(logsDir, "kspSourceToOutputs.log")
310+
logFile.appendText("=== Build $buildTime ===\n")
305311
logFile.appendText("All outputs\n")
306312
sourceToOutputsMap.keys.forEach { source ->
307313
logFile.appendText(" $source:\n")
@@ -316,7 +322,8 @@ class IncrementalContext(
316322
if (!options.incrementalLog)
317323
return
318324

319-
val logFile = File(options.projectBaseDir, "build/kspDirtySet.log")
325+
val logFile = File(logsDir, "kspDirtySet.log")
326+
logFile.appendText("=== Build $buildTime ===\n")
320327
logFile.appendText("Dirty:\n")
321328
files.forEach {
322329
logFile.appendText(" ${it.relativeFile}\n")

0 commit comments

Comments
 (0)