From 67c5919029d5b3e7e25ba25d973111d42b8b2859 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Fri, 12 Apr 2019 16:35:23 +0300 Subject: [PATCH] Allow customizing source file path conversion in local IC caches Original commit: 79337a6b96b5256c7739a927f74a9cd5c316e5c7 --- .../kotlin/jps/build/KotlinCompileContext.kt | 4 ++++ .../kotlin/jps/incremental/JpsIncrementalCache.kt | 11 +++++++---- .../kotlin/jps/targets/KotlinJsModuleBuildTarget.kt | 2 +- .../kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinCompileContext.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinCompileContext.kt index 5d1446d52a3..ec3ff7385b1 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinCompileContext.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinCompileContext.kt @@ -14,6 +14,8 @@ import org.jetbrains.jps.incremental.messages.BuildMessage import org.jetbrains.jps.incremental.messages.CompilerMessage import org.jetbrains.kotlin.config.CompilerRunnerConstants import org.jetbrains.kotlin.incremental.LookupSymbol +import org.jetbrains.kotlin.incremental.storage.SourceFileToCanonicalPathConverter +import org.jetbrains.kotlin.incremental.storage.SourceFileToPathConverter import org.jetbrains.kotlin.jps.incremental.* import org.jetbrains.kotlin.jps.targets.KotlinTargetsIndex import org.jetbrains.kotlin.jps.targets.KotlinTargetsIndexBuilder @@ -66,6 +68,8 @@ class KotlinCompileContext(val jpsContext: CompileContext) { val hasKotlinMarker = HasKotlinMarker(dataManager) + val sourceFileToPathConverter: SourceFileToPathConverter = SourceFileToCanonicalPathConverter + /** * Flag to prevent rebuilding twice. * diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt index 3d999048d4e..7437c4daa4a 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/JpsIncrementalCache.kt @@ -24,6 +24,7 @@ import org.jetbrains.jps.incremental.storage.StorageOwner import org.jetbrains.kotlin.incremental.IncrementalCacheCommon import org.jetbrains.kotlin.incremental.IncrementalJsCache import org.jetbrains.kotlin.incremental.IncrementalJvmCache +import org.jetbrains.kotlin.incremental.storage.SourceFileToPathConverter import org.jetbrains.kotlin.jps.build.KotlinBuilder import org.jetbrains.kotlin.jps.targets.KotlinModuleBuildTarget import java.io.File @@ -34,8 +35,9 @@ interface JpsIncrementalCache : IncrementalCacheCommon, StorageOwner { class JpsIncrementalJvmCache( target: ModuleBuildTarget, - paths: BuildDataPaths -) : IncrementalJvmCache(paths.getTargetDataRoot(target), target.outputDir), JpsIncrementalCache { + paths: BuildDataPaths, + sourcePathConverter: SourceFileToPathConverter +) : IncrementalJvmCache(paths.getTargetDataRoot(target), target.outputDir, sourcePathConverter), JpsIncrementalCache { override fun addJpsDependentCache(cache: JpsIncrementalCache) { if (cache is JpsIncrementalJvmCache) { addDependentCache(cache) @@ -49,8 +51,9 @@ class JpsIncrementalJvmCache( class JpsIncrementalJsCache( target: ModuleBuildTarget, - paths: BuildDataPaths -) : IncrementalJsCache(paths.getTargetDataRoot(target)), JpsIncrementalCache { + paths: BuildDataPaths, + sourcePathConverter: SourceFileToPathConverter +) : IncrementalJsCache(paths.getTargetDataRoot(target), sourcePathConverter), JpsIncrementalCache { override fun addJpsDependentCache(cache: JpsIncrementalCache) { if (cache is JpsIncrementalJsCache) { addDependentCache(cache) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt index 9b805a8e6a6..fbd08ad2834 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJsModuleBuildTarget.kt @@ -208,7 +208,7 @@ class KotlinJsModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleBu } override fun createCacheStorage(paths: BuildDataPaths) = - JpsIncrementalJsCache(jpsModuleBuildTarget, paths) + JpsIncrementalJsCache(jpsModuleBuildTarget, paths, kotlinContext.sourceFileToPathConverter) override fun updateCaches( dirtyFilesHolder: KotlinDirtySourceFilesHolder, diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt index d24a71ec0ff..126b50961c7 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt @@ -55,7 +55,8 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB override val isIncrementalCompilationEnabled: Boolean get() = IncrementalCompilation.isEnabledForJvm() - override fun createCacheStorage(paths: BuildDataPaths) = JpsIncrementalJvmCache(jpsModuleBuildTarget, paths) + override fun createCacheStorage(paths: BuildDataPaths) = + JpsIncrementalJvmCache(jpsModuleBuildTarget, paths, kotlinContext.sourceFileToPathConverter) override val buildMetaInfoFactory get() = JvmBuildMetaInfo