Implement inter-project JS IC with Gradle

#KT-25025 fixed
This commit is contained in:
Alexey Tsvetkov
2018-07-10 15:18:32 +03:00
parent 02af631e14
commit 30f3622b27
30 changed files with 408 additions and 271 deletions
@@ -23,7 +23,9 @@ class IncrementalModuleInfo(
val projectRoot: File,
val dirToModule: Map<File, IncrementalModuleEntry>,
val nameToModules: Map<String, Set<IncrementalModuleEntry>>,
val jarToClassListFile: Map<File, File>
val jarToClassListFile: Map<File, File>,
// only for js
val jarToModule: Map<File, IncrementalModuleEntry>
) : Serializable {
companion object {
private const val serialVersionUID = 0L
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer
import org.jetbrains.kotlin.incremental.parsing.classesFqNames
import org.jetbrains.kotlin.incremental.multiproject.ModulesApiHistoryAndroid
import org.jetbrains.kotlin.incremental.multiproject.ModulesApiHistoryJs
import org.jetbrains.kotlin.incremental.multiproject.ModulesApiHistoryJvm
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
import org.jetbrains.kotlin.modules.Module
@@ -475,8 +476,14 @@ class CompileServiceImpl(
incrementalCompilationOptions.customCacheVersionFileName,
workingDir,
enabled = true)
val compiler = IncrementalJsCompilerRunner(workingDir, versions, reporter)
val modulesApiHistory = ModulesApiHistoryJs(incrementalCompilationOptions.modulesInfo)
val compiler = IncrementalJsCompilerRunner(
workingDir = workingDir,
cacheVersions = versions,
reporter = reporter,
buildHistoryFile = incrementalCompilationOptions.multiModuleICSettings.buildHistoryFile,
modulesApiHistory = modulesApiHistory
)
return compiler.compile(allKotlinFiles, args, compilerMessageCollector, changedFiles)
}