From 5721b3b73cdd13f050325c3ac68e601dde8f8cc9 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Fri, 9 Sep 2022 01:04:21 -0700 Subject: [PATCH] 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. --- .../project/structure/impl/KtModuleUtils.kt | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) 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 8d17e77097f..08e02baf9c0 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 @@ internal fun buildKtModuleProviderByCompilerConfiguration( val moduleName = compilerConfig.get(CommonConfigurationKeys.MODULE_NAME) ?: "" 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()