AA: one representative lib module from compiler configuration
Split lib modules, which will be useful for reusable lib modules (if
there are multiple source modules that depend on same lib modules), are
not quite necessary for a project structure built from compiler
configuration. Those rather trigger OOM if lib modules' scopes are not
disjoint.
diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt
index 8d17e77..08e02ba 100644
--- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt
+++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleUtils.kt
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.project.structure.impl
import com.google.common.io.Files.getFileExtension
-import com.google.common.io.Files.getNameWithoutExtension
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems
@@ -158,33 +157,15 @@
val moduleName = compilerConfig.get(CommonConfigurationKeys.MODULE_NAME) ?: "<no module name provided>"
val libraryRoots = compilerConfig.jvmModularRoots + compilerConfig.jvmClasspathRoots
- val (directories, jars) = libraryRoots.partition { it.isDirectory }
- directories.forEach {
- // E.g., project/app/build/intermediates/javac/debug/classes
- val root = it.toPath()
- addRegularDependency(
- buildKtLibraryModule {
- contentScope = ProjectScope.getLibrariesScope(project)
- this.platform = platform
- this.project = project
- binaryRoots = listOf(root)
- libraryName = "$moduleName-${root.toString().replace("/", "-")}"
- }
- )
- }
- jars.forEach {
- // E.g., project/libs/libA/a.jar
- val root = it.toPath()
- addRegularDependency(
- buildKtLibraryModule {
- contentScope = ProjectScope.getLibrariesScope(project)
- this.platform = platform
- this.project = project
- binaryRoots = listOf(root)
- libraryName = getNameWithoutExtension(root.toString())
- }
- )
- }
+ addRegularDependency(
+ buildKtLibraryModule {
+ contentScope = ProjectScope.getLibrariesScope(project)
+ this.platform = platform
+ this.project = project
+ binaryRoots = libraryRoots.map { it.toPath() }
+ libraryName = "Library for $moduleName"
+ }
+ )
compilerConfig.get(JVMConfigurationKeys.JDK_HOME)?.let { jdkHome ->
val vfm = VirtualFileManager.getInstance()
val jdkHomePath = jdkHome.toPath()