[FIR MT] Add reading of packagePrefix from model of java roots
This commit is contained in:
committed by
teamcityserver
parent
97bfc49ed6
commit
a7961a4a45
+1
-1
@@ -127,7 +127,7 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() {
|
||||
args.reportPerf = true
|
||||
args.jvmTarget = "1.8"
|
||||
args.classpath = moduleData.classpath.joinToString(separator = ":") { it.absolutePath }
|
||||
args.javaSourceRoots = moduleData.javaSourceRoots.map { it.absolutePath }.toTypedArray()
|
||||
args.javaSourceRoots = moduleData.javaSourceRoots.map { it.path.absolutePath }.toTypedArray()
|
||||
args.allowKotlinPackage = true
|
||||
args.freeArgs = moduleData.sources.map { it.absolutePath }
|
||||
args.destination = tmp.toAbsolutePath().toFile().toString()
|
||||
|
||||
+16
-10
@@ -7,9 +7,8 @@ package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
@@ -30,7 +29,7 @@ data class ModuleData(
|
||||
val qualifier: String,
|
||||
val rawClasspath: List<String>,
|
||||
val rawSources: List<String>,
|
||||
val rawJavaSourceRoots: List<String>,
|
||||
val rawJavaSourceRoots: List<JavaSourceRootData<String>>,
|
||||
val rawFriendDirs: List<String>,
|
||||
val rawModularJdkRoot: String?,
|
||||
val isCommon: Boolean
|
||||
@@ -40,11 +39,13 @@ data class ModuleData(
|
||||
val outputDir = rawOutputDir.fixPath()
|
||||
val classpath = rawClasspath.map { it.fixPath() }
|
||||
val sources = rawSources.map { it.fixPath() }
|
||||
val javaSourceRoots = rawJavaSourceRoots.map { it.fixPath() }
|
||||
val javaSourceRoots = rawJavaSourceRoots.map { JavaSourceRootData(it.path.fixPath(), it.packagePrefix) }
|
||||
val friendDirs = rawFriendDirs.map { it.fixPath() }
|
||||
val modularJdkRoot = rawModularJdkRoot?.fixPath()
|
||||
}
|
||||
|
||||
data class JavaSourceRootData<Path : Any>(val path: Path, val packagePrefix: String?)
|
||||
|
||||
private fun String.fixPath(): File = File(ROOT_PATH_PREFIX, this.removePrefix("/"))
|
||||
|
||||
private fun NodeList.toList(): List<Node> {
|
||||
@@ -92,12 +93,11 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
|
||||
|
||||
fun createDefaultConfiguration(moduleData: ModuleData): CompilerConfiguration {
|
||||
val configuration = KotlinTestUtils.newConfiguration()
|
||||
configuration.addJavaSourceRoots(moduleData.javaSourceRoots)
|
||||
moduleData.javaSourceRoots.forEach {
|
||||
configuration.addJavaSourceRoot(it.path, it.packagePrefix)
|
||||
}
|
||||
configuration.addJvmClasspathRoots(moduleData.classpath)
|
||||
|
||||
// ignored for modular jdks
|
||||
configuration.put(JVMConfigurationKeys.NO_JDK, true)
|
||||
|
||||
// in case of modular jdk only
|
||||
configuration.putIfNotNull(JVMConfigurationKeys.JDK_HOME, moduleData.modularJdkRoot)
|
||||
|
||||
@@ -118,7 +118,7 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
|
||||
val moduleName = moduleElement.attributes.getNamedItem("name").nodeValue
|
||||
val outputDir = moduleElement.attributes.getNamedItem("outputDir").nodeValue
|
||||
val moduleNameQualifier = outputDir.substringAfterLast("/")
|
||||
val javaSourceRoots = mutableListOf<String>()
|
||||
val javaSourceRoots = mutableListOf<JavaSourceRootData<String>>()
|
||||
val classpath = mutableListOf<String>()
|
||||
val sources = mutableListOf<String>()
|
||||
val friendDirs = mutableListOf<String>()
|
||||
@@ -140,7 +140,13 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
|
||||
val path = item.attributes.getNamedItem("path").nodeValue
|
||||
friendDirs += path
|
||||
}
|
||||
"javaSourceRoots" -> javaSourceRoots += item.attributes.getNamedItem("path").nodeValue
|
||||
"javaSourceRoots" -> {
|
||||
javaSourceRoots +=
|
||||
JavaSourceRootData(
|
||||
item.attributes.getNamedItem("path").nodeValue,
|
||||
item.attributes.getNamedItem("packagePrefix")?.nodeValue,
|
||||
)
|
||||
}
|
||||
"sources" -> sources += item.attributes.getNamedItem("path").nodeValue
|
||||
"commonSources" -> isCommon = true
|
||||
"modularJdkRoot" -> modularJdkRoot = item.attributes.getNamedItem("path").nodeValue
|
||||
|
||||
Reference in New Issue
Block a user