Read script config if appropriate flag is specified, fix classpath handling
This commit is contained in:
@@ -284,6 +284,7 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
||||
configuration.put(JVMConfigurationKeys.INHERIT_MULTIFILE_PARTS, arguments.inheritMultifileParts)
|
||||
configuration.put(CLIConfigurationKeys.ALLOW_KOTLIN_PACKAGE, arguments.allowKotlinPackage)
|
||||
configuration.put(CLIConfigurationKeys.REPORT_PERF, arguments.reportPerf)
|
||||
configuration.put(JVMConfigurationKeys.LOAD_SCRIPT_CONFIGS, arguments.loadScriptConfigs)
|
||||
|
||||
arguments.declarationsOutputPath?.let { configuration.put(JVMConfigurationKeys.DECLARATIONS_JSON_PATH, it) }
|
||||
}
|
||||
|
||||
@@ -138,12 +138,21 @@ class KotlinCoreEnvironment private constructor(
|
||||
KotlinScriptDefinitionProvider.getInstance(project).let { scriptDefinitionProvider ->
|
||||
scriptDefinitionProvider.scriptDefinitions =
|
||||
configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS)
|
||||
.ifEmpty { listOf(StandardScriptDefinition) }
|
||||
.ifEmpty {
|
||||
if (configuration.get(JVMConfigurationKeys.LOAD_SCRIPT_CONFIGS) ?: false)
|
||||
loadScriptConfigsFromProjectRoot(File(project.basePath ?: ".")).let { configs ->
|
||||
val kotlinEnvVars = generateKotlinScriptClasspathEnvVars(project)
|
||||
configs.map { KotlinConfigurableScriptDefinition(it, kotlinEnvVars) } + StandardScriptDefinition
|
||||
}
|
||||
else null
|
||||
?: listOf(StandardScriptDefinition)
|
||||
}
|
||||
|
||||
configuration.addJvmClasspathRoots(
|
||||
sourceFiles
|
||||
.mapNotNull { src -> src.virtualFile?.let { scriptDefinitionProvider.findScriptDefinition(it) } }
|
||||
.flatMap { it.getScriptDependenciesClasspath().map { File(it).canonicalFile } }
|
||||
.mapNotNull { src -> src.virtualFile }
|
||||
.flatMap { getScriptCombinedClasspath(it, project) }
|
||||
.map { File(it).canonicalFile }
|
||||
.distinct())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user