[CLI] K2JVMCompilerArguments: Model classpath as Array<String>

to allow interning individual file-path arguments on the IDE

KTIJ-24976
This commit is contained in:
Sebastian Sellmair
2023-03-31 10:30:59 +02:00
committed by Space Team
parent 7f91e94e7a
commit 9dcd40d7b7
14 changed files with 28 additions and 25 deletions
@@ -17,7 +17,7 @@ fun copyK2JVMCompilerArguments(from: K2JVMCompilerArguments, to: K2JVMCompilerAr
to.assertionsMode = from.assertionsMode
to.backendThreads = from.backendThreads
to.buildFile = from.buildFile
to.classpath = from.classpath
to.classpath = from.classpath?.copyOf()
to.compileJava = from.compileJava
to.declarationsOutputPath = from.declarationsOutputPath
to.defaultScriptExtension = from.defaultScriptExtension
@@ -26,9 +26,10 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
value = "-classpath",
shortName = "-cp",
valueDescription = "<path>",
description = "List of directories and JAR/ZIP archives to search for user class files"
description = "List of directories and JAR/ZIP archives to search for user class files",
delimiter = Argument.Delimiters.pathSeparator
)
var classpath: String? = null
var classpath: Array<String>? = null
set(value) {
checkFrozen()
field = if (value.isNullOrEmpty()) null else value
@@ -174,7 +174,7 @@ fun writeOutputsIfNeeded(
fun ModuleBuilder.configureFromArgs(args: K2JVMCompilerArguments) {
args.friendPaths?.forEach { addFriendDir(it) }
args.classpath?.split(File.pathSeparator)?.forEach { addClasspathEntry(it) }
args.classpath?.forEach { addClasspathEntry(it) }
args.javaSourceRoots?.forEach {
addJavaSourceRoot(JavaRootPath(it, args.javaPackagePrefix))
}
@@ -179,7 +179,7 @@ fun CompilerConfiguration.configureJavaModulesContentRoots(arguments: K2JVMCompi
}
fun CompilerConfiguration.configureContentRootsFromClassPath(arguments: K2JVMCompilerArguments) {
for (path in arguments.classpath?.split(File.pathSeparatorChar).orEmpty()) {
for (path in arguments.classpath.orEmpty()) {
add(CLIConfigurationKeys.CONTENT_ROOTS, JvmClasspathRoot(File(path)))
}
}