[Gradle, BT] Move script definitions scanning into the build tools API
#KT-61449 In Progress
This commit is contained in:
committed by
Space Team
parent
6cfa165ddb
commit
2570be129f
@@ -12,6 +12,7 @@ public abstract interface class org/jetbrains/kotlin/buildtools/api/CompilationS
|
||||
public abstract fun calculateClasspathSnapshot (Ljava/io/File;Lorg/jetbrains/kotlin/buildtools/api/jvm/ClassSnapshotGranularity;)Lorg/jetbrains/kotlin/buildtools/api/jvm/ClasspathEntrySnapshot;
|
||||
public abstract fun compileJvm (Lorg/jetbrains/kotlin/buildtools/api/ProjectId;Lorg/jetbrains/kotlin/buildtools/api/CompilerExecutionStrategyConfiguration;Lorg/jetbrains/kotlin/buildtools/api/jvm/JvmCompilationConfiguration;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/kotlin/buildtools/api/CompilationResult;
|
||||
public abstract fun finishProjectCompilation (Lorg/jetbrains/kotlin/buildtools/api/ProjectId;)V
|
||||
public abstract fun getCustomKotlinScriptFilenameExtensions (Ljava/util/List;)Ljava/util/Collection;
|
||||
public static fun loadImplementation (Ljava/lang/ClassLoader;)Lorg/jetbrains/kotlin/buildtools/api/CompilationService;
|
||||
public abstract fun makeCompilerExecutionStrategyConfiguration ()Lorg/jetbrains/kotlin/buildtools/api/CompilerExecutionStrategyConfiguration;
|
||||
public abstract fun makeJvmCompilationConfiguration ()Lorg/jetbrains/kotlin/buildtools/api/jvm/JvmCompilationConfiguration;
|
||||
|
||||
+8
@@ -70,6 +70,14 @@ public interface CompilationService {
|
||||
*/
|
||||
public fun finishProjectCompilation(projectId: ProjectId)
|
||||
|
||||
/**
|
||||
* Retrieves the custom Kotlin script filename extensions based on script definitions from the specified classpath.
|
||||
*
|
||||
* @param classpath The list of files representing the classpath.
|
||||
* @return A collection of strings representing the custom Kotlin script filename extensions.
|
||||
*/
|
||||
public fun getCustomKotlinScriptFilenameExtensions(classpath: List<File>): Collection<String>
|
||||
|
||||
@ExperimentalBuildToolsApi
|
||||
public companion object {
|
||||
@JvmStatic
|
||||
|
||||
@@ -14,8 +14,11 @@ dependencies {
|
||||
compileOnly(project(":compiler:incremental-compilation-impl"))
|
||||
compileOnly(project(":kotlin-compiler-runner-unshaded"))
|
||||
compileOnly(intellijCore())
|
||||
compileOnly(project(":kotlin-scripting-compiler"))
|
||||
runtimeOnly(project(":kotlin-compiler-embeddable"))
|
||||
runtimeOnly(project(":kotlin-compiler-runner"))
|
||||
runtimeOnly(project(":kotlin-scripting-compiler-embeddable"))
|
||||
runtimeOnly(project(":kotlin-scripting-compiler-impl-embeddable"))
|
||||
}
|
||||
|
||||
publish()
|
||||
|
||||
+15
@@ -12,6 +12,8 @@ import org.jetbrains.kotlin.cli.common.ExitCode
|
||||
import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.validateArguments
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||
import org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunnerUtils
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
@@ -20,9 +22,12 @@ import org.jetbrains.kotlin.daemon.common.CompilerId
|
||||
import org.jetbrains.kotlin.daemon.common.configureDaemonJVMOptions
|
||||
import org.jetbrains.kotlin.daemon.common.filterExtractProps
|
||||
import org.jetbrains.kotlin.incremental.classpathDiff.ClasspathEntrySnapshotter
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||
import java.io.File
|
||||
import java.net.URLClassLoader
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
private val ExitCode.asCompilationResult
|
||||
get() = when (this) {
|
||||
@@ -77,6 +82,16 @@ internal object CompilationServiceImpl : CompilationService {
|
||||
file.delete()
|
||||
}
|
||||
|
||||
override fun getCustomKotlinScriptFilenameExtensions(classpath: List<File>): Collection<String> {
|
||||
val definitions = ScriptDefinitionsFromClasspathDiscoverySource(
|
||||
classpath,
|
||||
defaultJvmScriptingHostConfiguration,
|
||||
PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false).reporter
|
||||
).definitions
|
||||
|
||||
return definitions.mapTo(arrayListOf()) { it.fileExtension }
|
||||
}
|
||||
|
||||
private fun compileInProcess(
|
||||
loggerAdapter: KotlinLoggerMessageCollectorAdapter,
|
||||
sources: List<File>,
|
||||
|
||||
Reference in New Issue
Block a user