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(
|
arrayOf(
|
||||||
it + "com/example/lib/CommonKt.class",
|
it + "com/example/lib/CommonKt.class",
|
||||||
it + "com/example/lib/MainKt.class",
|
it + "com/example/lib/MainKt.class",
|
||||||
|
it + "Script.class",
|
||||||
it + "META-INF/new-mpp-lib-with-tests.kotlin_module"
|
it + "META-INF/new-mpp-lib-with-tests.kotlin_module"
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
+2
-1
@@ -37,7 +37,8 @@ kotlin {
|
|||||||
}
|
}
|
||||||
configure([main, jvmWithoutJavaMain]) {
|
configure([main, jvmWithoutJavaMain]) {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
|
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
|
||||||
|
implementation 'org.jetbrains.kotlin:kotlin-script-runtime'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
configure([test, jvmWithoutJavaTest]) {
|
configure([test, jvmWithoutJavaTest]) {
|
||||||
|
|||||||
+1
@@ -29,6 +29,7 @@ kotlin {
|
|||||||
configure(listOf(main, jvmWithoutJavaMain)) {
|
configure(listOf(main, jvmWithoutJavaMain)) {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("stdlib"))
|
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.dsl.multiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
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.SingleWarningPerBuild
|
||||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
@@ -89,6 +90,8 @@ class KotlinMultiplatformPlugin(
|
|||||||
// propagate compiler plugin options to the source set language settings
|
// propagate compiler plugin options to the source set language settings
|
||||||
setupCompilerPluginOptions(project)
|
setupCompilerPluginOptions(project)
|
||||||
|
|
||||||
|
project.pluginManager.apply(ScriptingGradleSubplugin::class.java)
|
||||||
|
|
||||||
UnusedSourceSetsChecker.checkSourceSets(project)
|
UnusedSourceSetsChecker.checkSourceSets(project)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-5
@@ -16,6 +16,7 @@ import org.gradle.api.plugins.JavaPluginConvention
|
|||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.tasks.compile.AbstractCompile
|
||||||
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.internal.KaptGenerateStubsTask
|
import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
||||||
@@ -51,11 +52,15 @@ class ScriptingGradleSubplugin : Plugin<Project> {
|
|||||||
|
|
||||||
if (task !is KaptGenerateStubsTask) {
|
if (task !is KaptGenerateStubsTask) {
|
||||||
|
|
||||||
val discoveryClasspathConfigurationName = getDiscoveryClasspathConfigurationName(task.sourceSetName)
|
try {
|
||||||
project.configurations.findByName(discoveryClasspathConfigurationName)?.let { _ ->
|
val discoveryClasspathConfigurationName = getDiscoveryClasspathConfigurationName(task.sourceSetName)
|
||||||
configureScriptsExtensions(project, javaPluginConvention, 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) {
|
if (useLazyTaskConfiguration) {
|
||||||
@@ -204,7 +209,7 @@ class ScriptingKotlinGradleSubplugin : KotlinGradleSubplugin<AbstractCompile> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun isApplicable(project: Project, task: AbstractCompile) =
|
override fun isApplicable(project: Project, task: AbstractCompile) =
|
||||||
ScriptingGradleSubplugin.isEnabled(project)
|
task is KotlinJvmCompile && ScriptingGradleSubplugin.isEnabled(project)
|
||||||
|
|
||||||
override fun apply(
|
override fun apply(
|
||||||
project: Project,
|
project: Project,
|
||||||
|
|||||||
Reference in New Issue
Block a user