[IC] Introduce ICContext to simplify configuration propagation to caches
#KT-49785 In Progress
This commit is contained in:
committed by
Space Team
parent
7171c2531c
commit
581bc89849
@@ -13,7 +13,10 @@ import org.jetbrains.jps.incremental.fs.CompilationRound
|
||||
import org.jetbrains.jps.incremental.messages.BuildMessage
|
||||
import org.jetbrains.jps.incremental.messages.CompilerMessage
|
||||
import org.jetbrains.kotlin.build.joinToReadableString
|
||||
import org.jetbrains.kotlin.build.report.DoNothingICReporter
|
||||
import org.jetbrains.kotlin.config.CompilerRunnerConstants.KOTLIN_COMPILER_NAME
|
||||
import org.jetbrains.kotlin.incremental.DummyCompilationTransaction
|
||||
import org.jetbrains.kotlin.incremental.IncrementalCompilationContext
|
||||
import org.jetbrains.kotlin.incremental.LookupSymbol
|
||||
import org.jetbrains.kotlin.incremental.storage.FileToPathConverter
|
||||
import org.jetbrains.kotlin.jps.KotlinJpsBundle
|
||||
@@ -81,7 +84,9 @@ class KotlinCompileContext(val jpsContext: CompileContext) {
|
||||
val fileToPathConverter: FileToPathConverter =
|
||||
JpsFileToPathConverter(jpsContext.projectDescriptor.project)
|
||||
|
||||
val lookupStorageManager = JpsLookupStorageManager(dataManager, fileToPathConverter)
|
||||
val icContext = IncrementalCompilationContext(pathConverter = fileToPathConverter)
|
||||
|
||||
val lookupStorageManager = JpsLookupStorageManager(dataManager, icContext)
|
||||
|
||||
/**
|
||||
* Flag to prevent rebuilding twice.
|
||||
|
||||
@@ -21,10 +21,7 @@ import org.jetbrains.jps.builders.storage.StorageProvider
|
||||
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
||||
import org.jetbrains.jps.incremental.storage.BuildDataManager
|
||||
import org.jetbrains.jps.incremental.storage.StorageOwner
|
||||
import org.jetbrains.kotlin.incremental.DummyCompilationTransaction
|
||||
import org.jetbrains.kotlin.incremental.IncrementalCacheCommon
|
||||
import org.jetbrains.kotlin.incremental.IncrementalJsCache
|
||||
import org.jetbrains.kotlin.incremental.IncrementalJvmCache
|
||||
import org.jetbrains.kotlin.incremental.*
|
||||
import org.jetbrains.kotlin.incremental.storage.FileToPathConverter
|
||||
import org.jetbrains.kotlin.jps.build.KotlinBuilder
|
||||
import org.jetbrains.kotlin.jps.targets.KotlinModuleBuildTarget
|
||||
@@ -38,8 +35,8 @@ interface JpsIncrementalCache : IncrementalCacheCommon, StorageOwner {
|
||||
class JpsIncrementalJvmCache(
|
||||
target: ModuleBuildTarget,
|
||||
paths: BuildDataPaths,
|
||||
pathConverter: FileToPathConverter
|
||||
) : IncrementalJvmCache(paths.getTargetDataRoot(target), target.outputDir, pathConverter), JpsIncrementalCache {
|
||||
icContext: IncrementalCompilationContext
|
||||
) : IncrementalJvmCache(paths.getTargetDataRoot(target), icContext, target.outputDir), JpsIncrementalCache {
|
||||
override fun addJpsDependentCache(cache: JpsIncrementalCache) {
|
||||
if (cache is JpsIncrementalJvmCache) {
|
||||
addDependentCache(cache)
|
||||
@@ -54,8 +51,8 @@ class JpsIncrementalJvmCache(
|
||||
class JpsIncrementalJsCache(
|
||||
target: ModuleBuildTarget,
|
||||
paths: BuildDataPaths,
|
||||
pathConverter: FileToPathConverter
|
||||
) : IncrementalJsCache(paths.getTargetDataRoot(target), pathConverter, JsSerializerProtocol, DummyCompilationTransaction()), JpsIncrementalCache {
|
||||
icContext: IncrementalCompilationContext
|
||||
) : IncrementalJsCache(paths.getTargetDataRoot(target), icContext, JsSerializerProtocol), JpsIncrementalCache {
|
||||
override fun addJpsDependentCache(cache: JpsIncrementalCache) {
|
||||
if (cache is JpsIncrementalJsCache) {
|
||||
addDependentCache(cache)
|
||||
|
||||
@@ -21,8 +21,8 @@ import org.jetbrains.jps.builders.storage.BuildDataCorruptedException
|
||||
import org.jetbrains.jps.builders.storage.StorageProvider
|
||||
import org.jetbrains.jps.incremental.storage.BuildDataManager
|
||||
import org.jetbrains.jps.incremental.storage.StorageOwner
|
||||
import org.jetbrains.kotlin.incremental.IncrementalCompilationContext
|
||||
import org.jetbrains.kotlin.incremental.LookupStorage
|
||||
import org.jetbrains.kotlin.incremental.storage.FileToPathConverter
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
|
||||
@@ -30,9 +30,9 @@ private object LookupStorageLock
|
||||
|
||||
class JpsLookupStorageManager(
|
||||
private val buildDataManager: BuildDataManager,
|
||||
pathConverter: FileToPathConverter
|
||||
icContext: IncrementalCompilationContext,
|
||||
) {
|
||||
private val storageProvider = JpsLookupStorageProvider(pathConverter)
|
||||
private val storageProvider = JpsLookupStorageProvider(icContext)
|
||||
|
||||
fun cleanLookupStorage(log: Logger) {
|
||||
synchronized(LookupStorageLock) {
|
||||
@@ -58,14 +58,14 @@ class JpsLookupStorageManager(
|
||||
}
|
||||
|
||||
private class JpsLookupStorageProvider(
|
||||
private val pathConverter: FileToPathConverter
|
||||
private val icContext: IncrementalCompilationContext
|
||||
) : StorageProvider<JpsLookupStorage>() {
|
||||
override fun createStorage(targetDataDir: File): JpsLookupStorage =
|
||||
JpsLookupStorage(targetDataDir, pathConverter)
|
||||
JpsLookupStorage(targetDataDir, icContext)
|
||||
}
|
||||
|
||||
private class JpsLookupStorage(
|
||||
targetDataDir: File,
|
||||
pathConverter: FileToPathConverter
|
||||
) : StorageOwner, LookupStorage(targetDataDir, pathConverter)
|
||||
icContext: IncrementalCompilationContext
|
||||
) : StorageOwner, LookupStorage(targetDataDir, icContext)
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ class KotlinJsModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleBu
|
||||
}
|
||||
|
||||
override fun createCacheStorage(paths: BuildDataPaths) =
|
||||
JpsIncrementalJsCache(jpsModuleBuildTarget, paths, kotlinContext.fileToPathConverter)
|
||||
JpsIncrementalJsCache(jpsModuleBuildTarget, paths, kotlinContext.icContext)
|
||||
|
||||
override fun updateCaches(
|
||||
dirtyFilesHolder: KotlinDirtySourceFilesHolder,
|
||||
|
||||
@@ -60,7 +60,7 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB
|
||||
get() = IncrementalCompilation.isEnabledForJvm()
|
||||
|
||||
override fun createCacheStorage(paths: BuildDataPaths) =
|
||||
JpsIncrementalJvmCache(jpsModuleBuildTarget, paths, kotlinContext.fileToPathConverter)
|
||||
JpsIncrementalJvmCache(jpsModuleBuildTarget, paths, kotlinContext.icContext)
|
||||
|
||||
override val compilerArgumentsFileName
|
||||
get() = JVM_BUILD_META_INFO_FILE_NAME
|
||||
|
||||
Reference in New Issue
Block a user