Pass incrementalCaches as a doBuild parameter

Original commit: 2afaa82b57
This commit is contained in:
Alexey Tsvetkov
2015-09-04 15:31:59 +03:00
parent dad3f8f144
commit bb14bb8d09
@@ -32,6 +32,7 @@ import org.jetbrains.jps.incremental.fs.CompilationRound
import org.jetbrains.jps.incremental.java.JavaBuilder import org.jetbrains.jps.incremental.java.JavaBuilder
import org.jetbrains.jps.incremental.messages.BuildMessage import org.jetbrains.jps.incremental.messages.BuildMessage
import org.jetbrains.jps.incremental.messages.CompilerMessage import org.jetbrains.jps.incremental.messages.CompilerMessage
import org.jetbrains.jps.incremental.storage.StorageOwner
import org.jetbrains.jps.model.JpsProject import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.JpsSimpleElement import org.jetbrains.jps.model.JpsSimpleElement
import org.jetbrains.jps.model.ex.JpsElementChildRoleBase import org.jetbrains.jps.model.ex.JpsElementChildRoleBase
@@ -101,8 +102,12 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
outputConsumer: ModuleLevelBuilder.OutputConsumer outputConsumer: ModuleLevelBuilder.OutputConsumer
): ModuleLevelBuilder.ExitCode { ): ModuleLevelBuilder.ExitCode {
val messageCollector = MessageCollectorAdapter(context) val messageCollector = MessageCollectorAdapter(context)
val dataManager = context.projectDescriptor.dataManager
val targets = chunk.targets
val incrementalCaches = targets.keysToMap { dataManager.getKotlinCache(it) }
try { try {
return doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer) return doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer, incrementalCaches)
} }
catch (e: StopBuildException) { catch (e: StopBuildException) {
throw e throw e
@@ -121,7 +126,8 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
chunk: ModuleChunk, chunk: ModuleChunk,
context: CompileContext, context: CompileContext,
dirtyFilesHolder: DirtyFilesHolder<JavaSourceRootDescriptor, ModuleBuildTarget>, dirtyFilesHolder: DirtyFilesHolder<JavaSourceRootDescriptor, ModuleBuildTarget>,
messageCollector: MessageCollectorAdapter, outputConsumer: ModuleLevelBuilder.OutputConsumer messageCollector: MessageCollectorAdapter, outputConsumer: ModuleLevelBuilder.OutputConsumer,
incrementalCaches: Map<ModuleBuildTarget, IncrementalCacheImpl>
): ModuleLevelBuilder.ExitCode { ): ModuleLevelBuilder.ExitCode {
// Workaround for Android Studio // Workaround for Android Studio
if (!JpsUtils.isJsKotlinModule(chunk.representativeTarget()) && !JavaBuilder.IS_ENABLED[context, true]) { if (!JpsUtils.isJsKotlinModule(chunk.representativeTarget()) && !JavaBuilder.IS_ENABLED[context, true]) {
@@ -135,7 +141,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
if (chunk.getTargets().any { dataManager.getDataPaths().getKotlinCacheVersion(it).isIncompatible() }) { if (chunk.getTargets().any { dataManager.getDataPaths().getKotlinCacheVersion(it).isIncompatible() }) {
LOG.info("Clearing caches for " + chunk.getTargets().map { it.getPresentableName() }.join()) LOG.info("Clearing caches for " + chunk.getTargets().map { it.getPresentableName() }.join())
chunk.getTargets().forEach { dataManager.getKotlinCache(it).clean() } incrementalCaches.values().forEach(StorageOwner::clean)
return CHUNK_REBUILD_REQUIRED return CHUNK_REBUILD_REQUIRED
} }
@@ -146,8 +152,6 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
messageCollector.report(INFO, "Kotlin JPS plugin version " + KotlinVersion.VERSION, CompilerMessageLocation.NO_LOCATION) messageCollector.report(INFO, "Kotlin JPS plugin version " + KotlinVersion.VERSION, CompilerMessageLocation.NO_LOCATION)
val incrementalCaches = chunk.getTargets().keysToMap { dataManager.getKotlinCache(it) }
val project = projectDescriptor.project val project = projectDescriptor.project
val lookupTracker = val lookupTracker =