From 162f42c442a92cf7fe3844fbf7380559c3aea35e Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Tue, 11 Aug 2015 16:25:54 +0300 Subject: [PATCH] Use both target name and target type to get incremental cache from backend Original commit: 0988b21e9cba9478071cc493315a85c68499220f --- .../kotlin/jps/build/KotlinBuilder.kt | 1 + .../IncrementalCompilationComponentsImpl.kt | 32 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 84706d4e7da..3aad308f5f2 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -321,6 +321,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR || className.startsWith("org.apache.log4j.") // For logging from compiler || className == "org.jetbrains.kotlin.progress.CompilationCanceledStatus" || className == "org.jetbrains.kotlin.progress.CompilationCanceledException" + || className == "org.jetbrains.kotlin.modules.Module" }, compilerServices ) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt index 9e423f5a262..e4ff9a9da86 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCompilationComponentsImpl.kt @@ -20,14 +20,42 @@ import org.jetbrains.jps.incremental.ModuleBuildTarget import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents +import org.jetbrains.kotlin.modules.Module public class IncrementalCompilationComponentsImpl( caches: Map, private val lookupTracker: LookupTracker ): IncrementalCompilationComponents { - private val idToCache = caches.mapKeys { it.key.id!! } + private val caches = caches.mapKeys { ModuleToModuleBuildTargetAdapter(it.key) } - override fun getIncrementalCache(moduleId: String): IncrementalCache = idToCache[moduleId]!! + override fun getIncrementalCache(target: Module): IncrementalCache = + caches[target]!! override fun getLookupTracker(): LookupTracker = lookupTracker } + +private class ModuleToModuleBuildTargetAdapter( + private val moduleBuildTarget: ModuleBuildTarget +) : Module { + + override fun getModuleName(): String = + moduleBuildTarget.id + + override fun getModuleType(): String = + moduleBuildTarget.targetType.typeId + + override fun getAnnotationsRoots(): List = + throw UnsupportedOperationException() + + override fun getClasspathRoots(): List = + throw UnsupportedOperationException() + + override fun getJavaSourceRoots(): List = + throw UnsupportedOperationException() + + override fun getOutputDirectory(): String = + throw UnsupportedOperationException() + + override fun getSourceFiles(): List = + throw UnsupportedOperationException() +}