Apply scripting subplugin in gradle mpp plugin, so scripts could be added to mpp sources

#KT-30679 fixed
This commit is contained in:
Ilya Chernikov
2019-03-28 19:22:14 +01:00
parent 3a3ba5bd8d
commit 16ae313b22
6 changed files with 19 additions and 6 deletions
@@ -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"
)
},
@@ -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]) {
@@ -29,6 +29,7 @@ kotlin {
configure(listOf(main, jvmWithoutJavaMain)) {
dependencies {
implementation(kotlin("stdlib"))
implementation(kotlin("script-runtime"))
}
}
@@ -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)
}
@@ -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,