Rework ScriptingGradleSubplugin for the new subplugins API
This commit is contained in:
+25
-31
@@ -13,10 +13,9 @@ import org.gradle.api.artifacts.Configuration
|
|||||||
import org.gradle.api.artifacts.transform.ArtifactTransform
|
import org.gradle.api.artifacts.transform.ArtifactTransform
|
||||||
import org.gradle.api.attributes.Attribute
|
import org.gradle.api.attributes.Attribute
|
||||||
import org.gradle.api.plugins.JavaPluginConvention
|
import org.gradle.api.plugins.JavaPluginConvention
|
||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.provider.Provider
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||||
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||||
import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
|
import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
@@ -33,8 +32,6 @@ class ScriptingGradleSubplugin : Plugin<Project> {
|
|||||||
companion object {
|
companion object {
|
||||||
const val MISCONFIGURATION_MESSAGE_SUFFIX = "the plugin is probably applied by a mistake"
|
const val MISCONFIGURATION_MESSAGE_SUFFIX = "the plugin is probably applied by a mistake"
|
||||||
|
|
||||||
fun isEnabled(project: Project) = project.plugins.findPlugin(ScriptingGradleSubplugin::class.java) != null
|
|
||||||
|
|
||||||
fun configureForSourceSet(project: Project, sourceSetName: String) {
|
fun configureForSourceSet(project: Project, sourceSetName: String) {
|
||||||
val discoveryConfiguration = project.configurations.maybeCreate(getDiscoveryClasspathConfigurationName(sourceSetName)).apply {
|
val discoveryConfiguration = project.configurations.maybeCreate(getDiscoveryClasspathConfigurationName(sourceSetName)).apply {
|
||||||
isVisible = false
|
isVisible = false
|
||||||
@@ -48,8 +45,9 @@ class ScriptingGradleSubplugin : Plugin<Project> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
project.afterEvaluate {
|
project.plugins.apply(ScriptingKotlinGradleSubplugin::class.java)
|
||||||
|
|
||||||
|
project.afterEvaluate {
|
||||||
val javaPluginConvention = project.convention.findPlugin(JavaPluginConvention::class.java)
|
val javaPluginConvention = project.convention.findPlugin(JavaPluginConvention::class.java)
|
||||||
if (javaPluginConvention?.sourceSets?.isEmpty() == false) {
|
if (javaPluginConvention?.sourceSets?.isEmpty() == false) {
|
||||||
|
|
||||||
@@ -209,7 +207,7 @@ fun Configuration.discoverScriptExtensionsFiles() =
|
|||||||
}.artifacts.artifactFiles
|
}.artifacts.artifactFiles
|
||||||
|
|
||||||
|
|
||||||
class ScriptingKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
|
class ScriptingKotlinGradleSubplugin : KotlinCompilerPluginSupportPlugin {
|
||||||
companion object {
|
companion object {
|
||||||
const val SCRIPTING_ARTIFACT_NAME = "kotlin-scripting-compiler-embeddable"
|
const val SCRIPTING_ARTIFACT_NAME = "kotlin-scripting-compiler-embeddable"
|
||||||
|
|
||||||
@@ -219,38 +217,34 @@ class ScriptingKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
|
|||||||
val LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION = "script-resolver-environment"
|
val LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION = "script-resolver-environment"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isApplicable(project: Project, task: AbstractCompile) =
|
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean = true
|
||||||
task is KotlinJvmCompile && ScriptingGradleSubplugin.isEnabled(project)
|
|
||||||
|
|
||||||
override fun apply(
|
override fun applyToCompilation(
|
||||||
project: Project,
|
kotlinCompilation: KotlinCompilation<*>
|
||||||
kotlinCompile: AbstractCompile,
|
): Provider<List<SubpluginOption>> {
|
||||||
javaCompile: AbstractCompile?,
|
val project = kotlinCompilation.target.project
|
||||||
variantData: Any?,
|
|
||||||
androidProjectHandler: Any?,
|
|
||||||
kotlinCompilation: KotlinCompilation<*>?
|
|
||||||
): List<SubpluginOption> {
|
|
||||||
if (!ScriptingGradleSubplugin.isEnabled(project)) return emptyList()
|
|
||||||
|
|
||||||
val scriptingExtension = project.extensions.findByType(ScriptingExtension::class.java)
|
val scriptingExtension = project.extensions.findByType(ScriptingExtension::class.java)
|
||||||
?: project.extensions.create("kotlinScripting", ScriptingExtension::class.java)
|
?: project.extensions.create("kotlinScripting", ScriptingExtension::class.java)
|
||||||
|
|
||||||
val options = mutableListOf<SubpluginOption>()
|
return project.provider {
|
||||||
|
val options = mutableListOf<SubpluginOption>()
|
||||||
|
|
||||||
for (scriptDef in scriptingExtension.myScriptDefinitions) {
|
for (scriptDef in scriptingExtension.myScriptDefinitions) {
|
||||||
options += SubpluginOption(SCRIPT_DEFINITIONS_OPTION, scriptDef)
|
options += SubpluginOption(SCRIPT_DEFINITIONS_OPTION, scriptDef)
|
||||||
}
|
}
|
||||||
for (path in scriptingExtension.myScriptDefinitionsClasspath) {
|
for (path in scriptingExtension.myScriptDefinitionsClasspath) {
|
||||||
options += SubpluginOption(SCRIPT_DEFINITIONS_CLASSPATH_OPTION, path)
|
options += SubpluginOption(SCRIPT_DEFINITIONS_CLASSPATH_OPTION, path)
|
||||||
}
|
}
|
||||||
if (scriptingExtension.myDisableScriptDefinitionsFromClasspath) {
|
if (scriptingExtension.myDisableScriptDefinitionsFromClasspath) {
|
||||||
options += SubpluginOption(DISABLE_SCRIPT_DEFINITIONS_FROM_CLSSPATH_OPTION, "true")
|
options += SubpluginOption(DISABLE_SCRIPT_DEFINITIONS_FROM_CLSSPATH_OPTION, "true")
|
||||||
}
|
}
|
||||||
for (pair in scriptingExtension.myScriptResolverEnvironment) {
|
for (pair in scriptingExtension.myScriptResolverEnvironment) {
|
||||||
options += SubpluginOption(LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION, "${pair.key}=${pair.value}")
|
options += SubpluginOption(LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION, "${pair.key}=${pair.value}")
|
||||||
}
|
}
|
||||||
|
|
||||||
return options
|
options
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getCompilerPluginId() = "kotlin.scripting"
|
override fun getCompilerPluginId() = "kotlin.scripting"
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
org.jetbrains.kotlin.gradle.scripting.internal.ScriptingKotlinGradleSubplugin
|
|
||||||
Reference in New Issue
Block a user