[FP] Pass module data to compiler via build file
This commit is contained in:
committed by
Dmitriy Novozhilov
parent
020b6e9dd1
commit
4a75222491
+20
-5
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.build.JvmSourceRoot
|
||||
import org.jetbrains.kotlin.cli.common.*
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
@@ -14,6 +15,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder
|
||||
import org.jetbrains.kotlin.util.PerformanceCounter
|
||||
import java.io.FileOutputStream
|
||||
import java.io.PrintStream
|
||||
@@ -124,14 +126,27 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() {
|
||||
}
|
||||
|
||||
private fun configureBaseArguments(args: K2JVMCompilerArguments, moduleData: ModuleData, tmp: Path) {
|
||||
val builder = KotlinModuleXmlBuilder()
|
||||
builder.addModule(
|
||||
moduleData.name,
|
||||
tmp.toAbsolutePath().toFile().toString(),
|
||||
sourceFiles = moduleData.sources,
|
||||
javaSourceRoots = moduleData.javaSourceRoots.map { JvmSourceRoot(it.path, it.packagePrefix) },
|
||||
classpathRoots = moduleData.classpath,
|
||||
commonSourceFiles = emptyList(),
|
||||
modularJdkRoot = moduleData.modularJdkRoot,
|
||||
"java-production",
|
||||
isTests = false,
|
||||
emptySet(),
|
||||
friendDirs = moduleData.friendDirs
|
||||
)
|
||||
val modulesFile = tmp.toFile().resolve("modules.xml")
|
||||
modulesFile.writeText(builder.asText().toString())
|
||||
|
||||
args.reportPerf = true
|
||||
args.jvmTarget = "1.8"
|
||||
args.classpath = moduleData.classpath.joinToString(separator = ":") { it.absolutePath }
|
||||
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()
|
||||
args.friendPaths = moduleData.friendDirs.map { it.canonicalPath }.toTypedArray()
|
||||
args.buildFile = modulesFile.absolutePath
|
||||
}
|
||||
|
||||
abstract fun configureArguments(args: K2JVMCompilerArguments, moduleData: ModuleData)
|
||||
|
||||
Reference in New Issue
Block a user