Remove support for xml-based script configs, other minor refactorings
This commit is contained in:
@@ -93,7 +93,7 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
||||
)
|
||||
return COMPILATION_ERROR
|
||||
}
|
||||
configuration.addKotlinSourceRoot(arguments.freeArgs.get(0))
|
||||
configuration.addKotlinSourceRoot(arguments.freeArgs[0])
|
||||
}
|
||||
else if (arguments.module == null) {
|
||||
for (arg in arguments.freeArgs) {
|
||||
@@ -376,7 +376,6 @@ 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)
|
||||
configuration.put(JVMConfigurationKeys.USE_SINGLE_MODULE, arguments.singleModule)
|
||||
|
||||
arguments.declarationsOutputPath?.let { configuration.put(JVMConfigurationKeys.DECLARATIONS_JSON_PATH, it) }
|
||||
|
||||
@@ -93,9 +93,9 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisCompletedHandlerExten
|
||||
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.CliDeclarationProviderFactoryService
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
||||
import org.jetbrains.kotlin.script.*
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider
|
||||
import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import org.jetbrains.kotlin.utils.ifEmpty
|
||||
import java.io.File
|
||||
import java.lang.IllegalStateException
|
||||
import java.util.*
|
||||
@@ -108,7 +108,7 @@ class KotlinCoreEnvironment private constructor(
|
||||
|
||||
private val projectEnvironment: JavaCoreProjectEnvironment = object : KotlinCoreProjectEnvironment(parentDisposable, applicationEnvironment) {
|
||||
override fun preregisterServices() {
|
||||
registerProjectExtensionPoints(Extensions.getArea(getProject()))
|
||||
registerProjectExtensionPoints(Extensions.getArea(project))
|
||||
}
|
||||
}
|
||||
private val sourceFiles = ArrayList<KtFile>()
|
||||
@@ -132,24 +132,11 @@ class KotlinCoreEnvironment private constructor(
|
||||
message ->
|
||||
report(ERROR, message)
|
||||
}))
|
||||
sourceFiles.sortedWith(object : Comparator<KtFile> {
|
||||
override fun compare(o1: KtFile, o2: KtFile): Int {
|
||||
return o1.virtualFile.path.compareTo(o2.virtualFile.path, ignoreCase = true)
|
||||
}
|
||||
})
|
||||
sourceFiles.sortedWith(Comparator<KtFile> { o1, o2 -> o1.virtualFile.path.compareTo(o2.virtualFile.path, ignoreCase = true) })
|
||||
|
||||
KotlinScriptDefinitionProvider.getInstance(project).let { scriptDefinitionProvider ->
|
||||
scriptDefinitionProvider.setScriptDefinitions(
|
||||
configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS)
|
||||
.ifEmpty {
|
||||
if (configuration.get(JVMConfigurationKeys.LOAD_SCRIPT_CONFIGS) ?: false)
|
||||
loadScriptConfigsFromProjectRoot(File(project.basePath ?: ".")).let { configs ->
|
||||
val kotlinEnvVars = generateKotlinScriptClasspathEnvVars(project)
|
||||
configs.map { KotlinConfigurableScriptDefinition(it, kotlinEnvVars) }
|
||||
}
|
||||
else null
|
||||
?: emptyList()
|
||||
})
|
||||
configuration.getList(JVMConfigurationKeys.SCRIPT_DEFINITIONS))
|
||||
|
||||
KotlinScriptExternalImportsProvider.getInstance(project)?.run {
|
||||
configuration.addJvmClasspathRoots(
|
||||
@@ -275,7 +262,7 @@ class KotlinCoreEnvironment private constructor(
|
||||
|
||||
private fun findJarRoot(root: JvmClasspathRoot): VirtualFile? {
|
||||
val path = root.file
|
||||
val jarFile = applicationEnvironment.jarFileSystem.findFileByPath("${path}${URLUtil.JAR_SEPARATOR}")
|
||||
val jarFile = applicationEnvironment.jarFileSystem.findFileByPath("$path${URLUtil.JAR_SEPARATOR}")
|
||||
if (jarFile == null) {
|
||||
report(WARNING, "Classpath entry points to a file that is not a JAR archive: $path")
|
||||
return null
|
||||
@@ -320,12 +307,10 @@ class KotlinCoreEnvironment private constructor(
|
||||
if (!(System.getProperty(KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY).toBooleanLenient() ?: false)) {
|
||||
// JPS may run many instances of the compiler in parallel (there's an option for compiling independent modules in parallel in IntelliJ)
|
||||
// All projects share the same ApplicationEnvironment, and when the last project is disposed, the ApplicationEnvironment is disposed as well
|
||||
Disposer.register(parentDisposable, object : Disposable {
|
||||
override fun dispose() {
|
||||
synchronized (APPLICATION_LOCK) {
|
||||
if (--ourProjectCount <= 0) {
|
||||
disposeApplicationEnvironment()
|
||||
}
|
||||
Disposer.register(parentDisposable, Disposable {
|
||||
synchronized (APPLICATION_LOCK) {
|
||||
if (--ourProjectCount <= 0) {
|
||||
disposeApplicationEnvironment()
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -357,11 +342,9 @@ class KotlinCoreEnvironment private constructor(
|
||||
val parentDisposable = Disposer.newDisposable()
|
||||
ourApplicationEnvironment = createApplicationEnvironment(parentDisposable, configuration, configFilePaths)
|
||||
ourProjectCount = 0
|
||||
Disposer.register(parentDisposable, object : Disposable {
|
||||
override fun dispose() {
|
||||
synchronized (APPLICATION_LOCK) {
|
||||
ourApplicationEnvironment = null
|
||||
}
|
||||
Disposer.register(parentDisposable, Disposable {
|
||||
synchronized (APPLICATION_LOCK) {
|
||||
ourApplicationEnvironment = null
|
||||
}
|
||||
})
|
||||
return ourApplicationEnvironment!!
|
||||
|
||||
Reference in New Issue
Block a user