Allow customizing source file path conversion in local IC caches
Original commit: 79337a6b96
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user