[Gradle] Migrate from ChangesFiles to SourcesChanges
It allows getting rid of the dependency on `:compiler:incremental-compilation-impl` #KT-61449 In Progress
This commit is contained in:
committed by
Space Team
parent
4eb468443a
commit
3fb1f7bf42
@@ -65,7 +65,7 @@ public final class org/jetbrains/kotlin/buildtools/api/SharedApiClassesClassLoad
|
||||
public static final fun newInstance ()Ljava/lang/ClassLoader;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/buildtools/api/SourcesChanges {
|
||||
public abstract interface class org/jetbrains/kotlin/buildtools/api/SourcesChanges : java/io/Serializable {
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/buildtools/api/SourcesChanges$Known : org/jetbrains/kotlin/buildtools/api/SourcesChanges {
|
||||
|
||||
+2
-2
@@ -6,12 +6,12 @@
|
||||
package org.jetbrains.kotlin.buildtools.api
|
||||
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* A hierarchy representing source files changes for incremental compilation
|
||||
*/
|
||||
@ExperimentalBuildToolsApi
|
||||
public sealed interface SourcesChanges {
|
||||
public sealed interface SourcesChanges : Serializable {
|
||||
/**
|
||||
* A marker object stating that the API consumer cannot calculate changes (either because it's an initial build or for some other reason).
|
||||
* The Build Tools API will not enable its source file changes detector in this mode, expecting the API consumer to provide file changes as [Known] for the consequent builds.
|
||||
|
||||
+4
-4
@@ -9,6 +9,7 @@ import org.gradle.api.logging.Logger
|
||||
import org.jetbrains.kotlin.build.report.metrics.*
|
||||
import org.jetbrains.kotlin.build.report.statistics.StatTag
|
||||
import org.jetbrains.kotlin.buildtools.api.KotlinLogger
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
@@ -20,7 +21,6 @@ import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers
|
||||
import org.jetbrains.kotlin.gradle.report.*
|
||||
import org.jetbrains.kotlin.gradle.tasks.*
|
||||
import org.jetbrains.kotlin.gradle.utils.stackTraceAsString
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.incremental.ClasspathChanges
|
||||
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
||||
import org.jetbrains.kotlin.incremental.util.ExceptionLocation
|
||||
@@ -309,12 +309,12 @@ internal class GradleKotlinCompilerWork @Inject constructor(
|
||||
bufferingMessageCollector: GradleBufferingMessageCollector
|
||||
): CompileService.CallResult<Int> {
|
||||
val icEnv = incrementalCompilationEnvironment ?: error("incrementalCompilationEnvironment is null!")
|
||||
val knownChangedFiles = icEnv.changedFiles as? ChangedFiles.Known
|
||||
val knownChangedFiles = icEnv.changedFiles as? SourcesChanges.Known
|
||||
val requestedCompilationResults = requestedCompilationResults()
|
||||
val compilationOptions = IncrementalCompilationOptions(
|
||||
areFileChangesKnown = knownChangedFiles != null,
|
||||
modifiedFiles = knownChangedFiles?.modified,
|
||||
deletedFiles = knownChangedFiles?.removed,
|
||||
modifiedFiles = knownChangedFiles?.modifiedFiles,
|
||||
deletedFiles = knownChangedFiles?.removedFiles,
|
||||
classpathChanges = icEnv.classpathChanges,
|
||||
workingDir = icEnv.workingDir,
|
||||
reportCategories = reportCategories(isVerbose),
|
||||
|
||||
+2
-2
@@ -5,14 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.compilerRunner
|
||||
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
import org.jetbrains.kotlin.daemon.common.MultiModuleICSettings
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.incremental.ClasspathChanges
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
internal class IncrementalCompilationEnvironment(
|
||||
val changedFiles: ChangedFiles,
|
||||
val changedFiles: SourcesChanges,
|
||||
val classpathChanges: ClasspathChanges,
|
||||
val workingDir: File,
|
||||
val rootProjectDir: File,
|
||||
|
||||
+1
-9
@@ -27,18 +27,10 @@ import org.jetbrains.kotlin.gradle.plugin.internal.BuildIdService
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy
|
||||
import org.jetbrains.kotlin.gradle.tasks.throwExceptionIfCompilationFailed
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.incremental.ClasspathChanges
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.File
|
||||
|
||||
@OptIn(ExperimentalBuildToolsApi::class)
|
||||
private val ChangedFiles.asSourcesChanges: SourcesChanges
|
||||
get() = when (this) {
|
||||
is ChangedFiles.Known -> SourcesChanges.Known(modified, removed)
|
||||
is ChangedFiles.Unknown -> SourcesChanges.Unknown
|
||||
}
|
||||
|
||||
internal abstract class BuildToolsApiCompilationWork : WorkAction<BuildToolsApiCompilationWork.BuildToolsApiCompilationParameters> {
|
||||
internal interface BuildToolsApiCompilationParameters : WorkParameters {
|
||||
val buildIdService: Property<BuildIdService>
|
||||
@@ -113,7 +105,7 @@ internal abstract class BuildToolsApiCompilationWork : WorkAction<BuildToolsApiC
|
||||
}
|
||||
jvmCompilationConfig.useIncrementalCompilation(
|
||||
icEnv.workingDir,
|
||||
icEnv.changedFiles.asSourcesChanges,
|
||||
icEnv.changedFiles,
|
||||
classpathSnapshotsParameters,
|
||||
classpathSnapshotsConfig,
|
||||
)
|
||||
|
||||
+2
-2
@@ -31,12 +31,12 @@ import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults
|
||||
import org.jetbrains.kotlin.build.report.statistics.BuildStartParameters
|
||||
import org.jetbrains.kotlin.build.report.statistics.StatTag
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||
import org.jetbrains.kotlin.gradle.report.BuildReportsService.Companion.getStartParameters
|
||||
import org.jetbrains.kotlin.gradle.report.data.BuildOperationRecord
|
||||
import org.jetbrains.kotlin.gradle.tasks.withType
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||
import org.jetbrains.kotlin.statistics.metrics.NumericalMetrics
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
@@ -330,7 +330,7 @@ internal class TaskRecord(
|
||||
override val skipMessage: String?,
|
||||
override val icLogLines: List<String>,
|
||||
val kotlinLanguageVersion: KotlinVersion?,
|
||||
val changedFiles: ChangedFiles? = null,
|
||||
val changedFiles: SourcesChanges? = null,
|
||||
val compilerArguments: Array<String> = emptyArray(),
|
||||
val statTags: Set<StatTag> = emptySet(),
|
||||
) : BuildOperationRecord {
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.build.report.metrics.GradleBuildPerformanceMetric
|
||||
import org.jetbrains.kotlin.build.report.metrics.GradleBuildTime
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||
import org.jetbrains.kotlin.build.report.statistics.StatTag
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
|
||||
internal class TaskExecutionResult(
|
||||
val buildMetrics: BuildMetrics<GradleBuildTime, GradleBuildPerformanceMetric>,
|
||||
@@ -20,7 +20,7 @@ internal class TaskExecutionResult(
|
||||
|
||||
internal class TaskExecutionInfo(
|
||||
val kotlinLanguageVersion: KotlinVersion? = null,
|
||||
val changedFiles: ChangedFiles? = null,
|
||||
val changedFiles: SourcesChanges? = null,
|
||||
val compilerArguments: Array<String> = emptyArray(),
|
||||
val tags: Set<StatTag> = emptySet(),
|
||||
)
|
||||
|
||||
+3
-3
@@ -11,8 +11,8 @@ import org.gradle.tooling.events.task.TaskSkippedResult
|
||||
import org.gradle.tooling.events.task.TaskSuccessResult
|
||||
import org.jetbrains.kotlin.build.report.metrics.*
|
||||
import org.jetbrains.kotlin.build.report.statistics.StatTag
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
import org.jetbrains.kotlin.gradle.report.data.BuildOperationRecord
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import java.util.concurrent.TimeUnit
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||
import org.jetbrains.kotlin.gradle.report.data.GradleCompileStatisticsData
|
||||
@@ -71,8 +71,8 @@ internal fun prepareData(
|
||||
buildMetrics, startTime, System.currentTimeMillis()
|
||||
)
|
||||
val buildAttributes = collectBuildAttributes(buildMetrics)
|
||||
val changes = if (buildOperationRecord is TaskRecord && buildOperationRecord.changedFiles is ChangedFiles.Known) {
|
||||
buildOperationRecord.changedFiles.modified.map { it.absolutePath } + buildOperationRecord.changedFiles.removed.map { it.absolutePath }
|
||||
val changes = if (buildOperationRecord is TaskRecord && buildOperationRecord.changedFiles is SourcesChanges.Known) {
|
||||
buildOperationRecord.changedFiles.modifiedFiles.map { it.absolutePath } + buildOperationRecord.changedFiles.removedFiles.map { it.absolutePath }
|
||||
} else {
|
||||
emptyList<String>()
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,6 +15,7 @@ import org.gradle.api.tasks.*
|
||||
import org.gradle.work.*
|
||||
import org.gradle.workers.WorkerExecutor
|
||||
import org.jetbrains.kotlin.build.report.metrics.*
|
||||
import org.jetbrains.kotlin.buildtools.api.SourcesChanges
|
||||
import org.jetbrains.kotlin.cli.common.CompilerSystemProperties
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.jetbrains.kotlin.compilerRunner.CompilerExecutionSettings
|
||||
@@ -37,7 +38,6 @@ import org.jetbrains.kotlin.gradle.plugin.internal.UsesBuildIdProviderService
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||
import org.jetbrains.kotlin.gradle.report.*
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.incremental.IncrementalCompilerRunner
|
||||
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||
@@ -332,7 +332,7 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
||||
inputChanges: InputChanges,
|
||||
incrementalProps: List<FileCollection>
|
||||
) = if (!inputChanges.isIncremental) {
|
||||
ChangedFiles.Unknown()
|
||||
SourcesChanges.Unknown
|
||||
} else {
|
||||
incrementalProps
|
||||
.fold(mutableListOf<File>() to mutableListOf<File>()) { (modified, removed), prop ->
|
||||
@@ -346,7 +346,7 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
||||
modified to removed
|
||||
}
|
||||
.run {
|
||||
ChangedFiles.Known(first, second)
|
||||
SourcesChanges.Known(first, second)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user