don't initialize Kotlin caches if there is no Kotlin code to compile

Original commit: 35d9880266
This commit is contained in:
Dmitry Jemerov
2015-09-15 14:07:10 +02:00
parent f12cce0243
commit 4aa3b9e334
@@ -102,10 +102,9 @@ 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 incrementalCaches = getIncrementalCaches(chunk, context)
try { try {
return doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer, incrementalCaches) return doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer)
} }
catch (e: StopBuildException) { catch (e: StopBuildException) {
throw e throw e
@@ -124,8 +123,7 @@ 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]) {
@@ -139,6 +137,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())
val incrementalCaches = getIncrementalCaches(chunk, context)
incrementalCaches.values().forEach(StorageOwner::clean) incrementalCaches.values().forEach(StorageOwner::clean)
return CHUNK_REBUILD_REQUIRED return CHUNK_REBUILD_REQUIRED
} }
@@ -158,6 +157,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
it.data it.data
} ?: LookupTracker.DO_NOTHING } ?: LookupTracker.DO_NOTHING
val incrementalCaches = getIncrementalCaches(chunk, context)
val environment = createCompileEnvironment(incrementalCaches, lookupTracker, context) val environment = createCompileEnvironment(incrementalCaches, lookupTracker, context)
if (!environment.success()) { if (!environment.success()) {
environment.reportErrorsTo(messageCollector) environment.reportErrorsTo(messageCollector)