[KGP] Introduce Incremental Compilation Feature Toggles

Makes it easier to introduce a Gradle property for configuring
IncrementalCompilerRunner.

^KT-64513 Fixed
^KT-63837 In Progress


Merge-request: KT-MR-13671
Merged-by: Evgenii Mazhukin <evgenii.mazhukin@jetbrains.com>
This commit is contained in:
Evgenii Mazhukin
2023-12-27 13:43:54 +00:00
committed by Space Team
parent 97f8f7a734
commit ee3119e9d2
19 changed files with 157 additions and 70 deletions
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.daemon.common
import org.jetbrains.kotlin.incremental.ClasspathChanges
import org.jetbrains.kotlin.incremental.IncrementalCompilationFeatures
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
import java.io.File
import java.io.Serializable
@@ -76,9 +77,7 @@ class IncrementalCompilationOptions(
val buildDir: File?,
kotlinScriptExtensions: Array<String>? = null,
val withAbiSnapshot: Boolean = false,
val preciseCompilationResultsBackup: Boolean = false,
val keepIncrementalCompilationCachesInMemory: Boolean = false,
val icFeatures: IncrementalCompilationFeatures = IncrementalCompilationFeatures.DEFAULT_CONFIGURATION,
) : CompilationOptions(
compilerMode,
targetPlatform,
@@ -88,7 +87,7 @@ class IncrementalCompilationOptions(
kotlinScriptExtensions
) {
companion object {
const val serialVersionUID: Long = 3
const val serialVersionUID: Long = 4
}
override fun toString(): String {
@@ -101,6 +100,7 @@ class IncrementalCompilationOptions(
"workingDir=$workingDir, " +
"multiModuleICSettings=$multiModuleICSettings, " +
"usePreciseJavaTracking=$usePreciseJavaTracking, " +
"icFeatures=$icFeatures, " +
"outputFiles=$outputFiles" +
")"
}
@@ -614,9 +614,7 @@ abstract class CompileServiceImplBase(
buildHistoryFile = incrementalCompilationOptions.multiModuleICSettings?.buildHistoryFile,
scopeExpansion = if (args.isIrBackendEnabled()) CompileScopeExpansionMode.ALWAYS else CompileScopeExpansionMode.NEVER,
modulesApiHistory = modulesApiHistory,
withAbiSnapshot = incrementalCompilationOptions.withAbiSnapshot,
preciseCompilationResultsBackup = incrementalCompilationOptions.preciseCompilationResultsBackup,
keepIncrementalCompilationCachesInMemory = incrementalCompilationOptions.keepIncrementalCompilationCachesInMemory,
icFeatures = incrementalCompilationOptions.icFeatures,
)
return try {
compiler.compile(allKotlinFiles, args, compilerMessageCollector, changedFiles)
@@ -683,9 +681,7 @@ abstract class CompileServiceImplBase(
modulesApiHistory = modulesApiHistory,
kotlinSourceFilesExtensions = allKotlinExtensions,
classpathChanges = incrementalCompilationOptions.classpathChanges,
withAbiSnapshot = incrementalCompilationOptions.withAbiSnapshot,
preciseCompilationResultsBackup = incrementalCompilationOptions.preciseCompilationResultsBackup,
keepIncrementalCompilationCachesInMemory = incrementalCompilationOptions.keepIncrementalCompilationCachesInMemory,
icFeatures = incrementalCompilationOptions.icFeatures,
)
return try {
compiler.compile(