Apply scripting subplugin in gradle mpp plugin, so scripts could be added to mpp sources
#KT-30679 fixed
This commit is contained in:
+1
@@ -398,6 +398,7 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
arrayOf(
|
||||
it + "com/example/lib/CommonKt.class",
|
||||
it + "com/example/lib/MainKt.class",
|
||||
it + "Script.class",
|
||||
it + "META-INF/new-mpp-lib-with-tests.kotlin_module"
|
||||
)
|
||||
},
|
||||
|
||||
+2
-1
@@ -37,7 +37,8 @@ kotlin {
|
||||
}
|
||||
configure([main, jvmWithoutJavaMain]) {
|
||||
dependencies {
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
|
||||
implementation 'org.jetbrains.kotlin:kotlin-script-runtime'
|
||||
}
|
||||
}
|
||||
configure([test, jvmWithoutJavaTest]) {
|
||||
|
||||
+1
@@ -29,6 +29,7 @@ kotlin {
|
||||
configure(listOf(main, jvmWithoutJavaMain)) {
|
||||
dependencies {
|
||||
implementation(kotlin("stdlib"))
|
||||
implementation(kotlin("script-runtime"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
|
||||
val x = 0
|
||||
+3
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
@@ -89,6 +90,8 @@ class KotlinMultiplatformPlugin(
|
||||
// propagate compiler plugin options to the source set language settings
|
||||
setupCompilerPluginOptions(project)
|
||||
|
||||
project.pluginManager.apply(ScriptingGradleSubplugin::class.java)
|
||||
|
||||
UnusedSourceSetsChecker.checkSourceSets(project)
|
||||
}
|
||||
|
||||
|
||||
+10
-5
@@ -16,6 +16,7 @@ import org.gradle.api.plugins.JavaPluginConvention
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile
|
||||
import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
||||
@@ -51,11 +52,15 @@ class ScriptingGradleSubplugin : Plugin<Project> {
|
||||
|
||||
if (task !is KaptGenerateStubsTask) {
|
||||
|
||||
val discoveryClasspathConfigurationName = getDiscoveryClasspathConfigurationName(task.sourceSetName)
|
||||
project.configurations.findByName(discoveryClasspathConfigurationName)?.let { _ ->
|
||||
configureScriptsExtensions(project, javaPluginConvention, task.sourceSetName)
|
||||
try {
|
||||
val discoveryClasspathConfigurationName = getDiscoveryClasspathConfigurationName(task.sourceSetName)
|
||||
project.configurations.findByName(discoveryClasspathConfigurationName)?.let { _ ->
|
||||
configureScriptsExtensions(project, javaPluginConvention, task.sourceSetName)
|
||||
}
|
||||
?: project.logger.warn("kotlin scripting plugin: $project.${task.name} - configuration not found: $discoveryClasspathConfigurationName, $MISCONFIGURATION_MESSAGE_SUFFIX")
|
||||
} catch (e: IllegalStateException) {
|
||||
project.logger.warn("kotlin scripting plugin: applied in the non-supported environment (error received: ${e.message})")
|
||||
}
|
||||
?: project.logger.warn("kotlin scripting plugin: $project.${task.name} - configuration not found: $discoveryClasspathConfigurationName, $MISCONFIGURATION_MESSAGE_SUFFIX")
|
||||
}
|
||||
}
|
||||
if (useLazyTaskConfiguration) {
|
||||
@@ -204,7 +209,7 @@ class ScriptingKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
|
||||
}
|
||||
|
||||
override fun isApplicable(project: Project, task: AbstractCompile) =
|
||||
ScriptingGradleSubplugin.isEnabled(project)
|
||||
task is KotlinJvmCompile && ScriptingGradleSubplugin.isEnabled(project)
|
||||
|
||||
override fun apply(
|
||||
project: Project,
|
||||
|
||||
Reference in New Issue
Block a user