[IC] Allow to not specify the modules info

This commit is contained in:
Alexander.Likhachev
2023-03-27 16:56:15 +02:00
committed by Space Team
parent e33611a88a
commit b3677fa0ca
13 changed files with 34 additions and 19 deletions
@@ -25,14 +25,14 @@ object EmptyModulesApiHistory : ModulesApiHistory {
override fun abiSnapshot(jar: File): Either<Set<File>> = Either.Error("Not supported")
}
abstract class ModulesApiHistoryBase(protected val modulesInfo: IncrementalModuleInfo) : ModulesApiHistory {
abstract class ModulesApiHistoryBase(rootProjectDir: File, protected val modulesInfo: IncrementalModuleInfo) : ModulesApiHistory {
// All project build dirs should have this dir as their parent. For a default project setup, this will
// be the same as root project path. Some projects map output outside of the root project dir, typically
// with <some_dir>/<project_path>/build, and in that case, this path will be <some_dir>.
// This is using set in order to de-dup paths, and avoid duplicate checks when possible.
protected val possibleParentsToBuildDirs: Set<Path> = setOf(
Paths.get(modulesInfo.rootProjectBuildDir.parentFile.absolutePath),
Paths.get(modulesInfo.projectRoot.absolutePath)
Paths.get(rootProjectDir.absolutePath)
)
private val dirToHistoryFileCache = HashMap<File, Set<File>>()
@@ -107,7 +107,7 @@ abstract class ModulesApiHistoryBase(protected val modulesInfo: IncrementalModul
protected abstract fun getBuildHistoryFilesForJar(jar: File): Either<Set<File>>
}
class ModulesApiHistoryJvm(modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(modulesInfo) {
class ModulesApiHistoryJvm(rootProjectDir: File, modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(rootProjectDir, modulesInfo) {
override fun getBuildHistoryFilesForJar(jar: File): Either<Set<File>> {
val moduleInfoFromJar = modulesInfo.jarToModule[jar]
if (moduleInfoFromJar != null) {
@@ -144,7 +144,7 @@ class ModulesApiHistoryJvm(modulesInfo: IncrementalModuleInfo) : ModulesApiHisto
}
}
class ModulesApiHistoryJs(modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(modulesInfo) {
class ModulesApiHistoryJs(rootProjectDir: File, modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(rootProjectDir, modulesInfo) {
override fun getBuildHistoryFilesForJar(jar: File): Either<Set<File>> {
val moduleEntry = modulesInfo.jarToModule[jar]
@@ -160,8 +160,8 @@ class ModulesApiHistoryJs(modulesInfo: IncrementalModuleInfo) : ModulesApiHistor
}
}
class ModulesApiHistoryAndroid(modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(modulesInfo) {
private val delegate = ModulesApiHistoryJvm(modulesInfo)
class ModulesApiHistoryAndroid(rootProjectDir: File, modulesInfo: IncrementalModuleInfo) : ModulesApiHistoryBase(rootProjectDir, modulesInfo) {
private val delegate = ModulesApiHistoryJvm(rootProjectDir, modulesInfo)
override fun historyFilesForChangedFiles(changedFiles: Set<File>): Either<Set<File>> {
val historyFromDelegate = delegate.historyFilesForChangedFiles(changedFiles)
@@ -33,7 +33,7 @@ abstract class AbstractIncrementalMultiModuleCompilerRunnerTest<Args : CommonCom
private val jarToAbiSnapshot = mutableMapOf<File, File>()
protected val incrementalModuleInfo: IncrementalModuleInfo by lazy {
IncrementalModuleInfo(workingDir, workingDir, dirToModule, nameToModules, jarToClassListFile, jarToModule, jarToAbiSnapshot)
IncrementalModuleInfo(workingDir, dirToModule, nameToModules, jarToClassListFile, jarToModule, jarToAbiSnapshot)
}
protected abstract val modulesApiHistory: ApiHistory
@@ -55,7 +55,7 @@ abstract class AbstractIncrementalMultiModuleJsKlibCompilerRunnerTest :
}
override val modulesApiHistory: ModulesApiHistoryJs by lazy {
ModulesApiHistoryJs(incrementalModuleInfo)
ModulesApiHistoryJs(workingDir, incrementalModuleInfo)
}
override val scopeExpansionMode: CompileScopeExpansionMode get() = CompileScopeExpansionMode.NEVER
@@ -59,7 +59,6 @@ class ModulesApiHistoryAndroidTest {
}
val info = IncrementalModuleInfo(
projectRoot = projectRoot,
rootProjectBuildDir = projectRoot.resolve("build"),
dirToModule = mapOf(appKotlinDestination to appEntry, libKotlinDestination to libEntry),
nameToModules = mapOf("app" to setOf(appEntry), "lib" to setOf(libEntry)),
@@ -68,7 +67,7 @@ class ModulesApiHistoryAndroidTest {
jarToAbiSnapshot = mapOf()
)
androidHistory = ModulesApiHistoryAndroid(info)
androidHistory = ModulesApiHistoryAndroid(projectRoot, info)
}
@Test