Revert "Simplify scripting configurations setup"
This reverts commit f4078b0940.
This commit is contained in:
+39
-28
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.gradle.scripting.internal
|
|||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.dsl.DependencyHandler
|
|
||||||
import org.gradle.api.artifacts.transform.InputArtifact
|
import org.gradle.api.artifacts.transform.InputArtifact
|
||||||
import org.gradle.api.artifacts.transform.TransformAction
|
import org.gradle.api.artifacts.transform.TransformAction
|
||||||
import org.gradle.api.artifacts.transform.TransformOutputs
|
import org.gradle.api.artifacts.transform.TransformOutputs
|
||||||
@@ -56,19 +55,23 @@ class ScriptingGradleSubplugin : Plugin<Project> {
|
|||||||
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) {
|
||||||
|
|
||||||
val configureAction: (KotlinCompile) -> (Unit) = ca@{ task ->
|
val configureAction: (KotlinCompile) -> (Unit) = { task ->
|
||||||
|
|
||||||
if (task !is KaptGenerateStubsTask) {
|
if (task !is KaptGenerateStubsTask) {
|
||||||
val sourceSetName = task.sourceSetName.orNull ?: return@ca
|
|
||||||
val discoveryResultsConfigurationName = getDiscoveryResultsConfigurationName(sourceSetName)
|
try {
|
||||||
val discoveryResultConfiguration = project.configurations.findByName(discoveryResultsConfigurationName)
|
val discoveryClasspathConfigurationName = getDiscoveryClasspathConfigurationName(task.sourceSetName.get())
|
||||||
if (discoveryResultConfiguration == null) {
|
val discoveryClasspathConfiguration = project.configurations.findByName(discoveryClasspathConfigurationName)
|
||||||
project.logger.warn(
|
when {
|
||||||
"$SCRIPTING_LOG_PREFIX $project.${task.name} - configuration not found:" +
|
discoveryClasspathConfiguration == null ->
|
||||||
" $discoveryResultsConfigurationName, $MISCONFIGURATION_MESSAGE_SUFFIX"
|
project.logger.warn("$SCRIPTING_LOG_PREFIX $project.${task.name} - configuration not found: $discoveryClasspathConfigurationName, $MISCONFIGURATION_MESSAGE_SUFFIX")
|
||||||
)
|
discoveryClasspathConfiguration.allDependencies.isEmpty() -> {
|
||||||
} else {
|
// skip further checks - user did not configured any discovery sources
|
||||||
task.scriptDefinitions.from(discoveryResultConfiguration)
|
}
|
||||||
|
else -> task.scriptDefinitions.from(discoveryClasspathConfiguration)
|
||||||
|
}
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
project.logger.warn("$SCRIPTING_LOG_PREFIX applied in the non-supported environment (error received: ${e.message})")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,11 +106,15 @@ private fun configureDiscoveryTransformation(
|
|||||||
) {
|
) {
|
||||||
project.configurations.maybeCreate(discoveryResultsConfigurationName).apply {
|
project.configurations.maybeCreate(discoveryResultsConfigurationName).apply {
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
isCanBeResolved = true
|
|
||||||
attributes.attribute(artifactType, scriptFilesExtensions)
|
|
||||||
extendsFrom(discoveryConfiguration)
|
|
||||||
}
|
}
|
||||||
project.dependencies.registerOnceDiscoverScriptExtensionsTransform()
|
project.dependencies.apply {
|
||||||
|
add(
|
||||||
|
discoveryResultsConfigurationName,
|
||||||
|
project.withRegisteredDiscoverScriptExtensionsTransform {
|
||||||
|
discoveryConfiguration.discoverScriptExtensionsFiles()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal abstract class DiscoverScriptExtensionsTransformAction : TransformAction<TransformParameters.None> {
|
internal abstract class DiscoverScriptExtensionsTransformAction : TransformAction<TransformParameters.None> {
|
||||||
@@ -129,32 +136,36 @@ internal abstract class DiscoverScriptExtensionsTransformAction : TransformActio
|
|||||||
if (extensions.isNotEmpty()) {
|
if (extensions.isNotEmpty()) {
|
||||||
val outputFile = outputs.file("${input.nameWithoutExtension}.discoveredScriptsExtensions.txt")
|
val outputFile = outputs.file("${input.nameWithoutExtension}.discoveredScriptsExtensions.txt")
|
||||||
outputFile.writeText(extensions.joinToString("\n"))
|
outputFile.writeText(extensions.joinToString("\n"))
|
||||||
|
listOf(outputFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun DependencyHandler.registerDiscoverScriptExtensionsTransform() {
|
private fun Project.registerDiscoverScriptExtensionsTransform() {
|
||||||
registerTransform(DiscoverScriptExtensionsTransformAction::class.java) { transformSpec ->
|
dependencies.apply {
|
||||||
transformSpec.from.attribute(artifactType, "jar")
|
registerTransform(DiscoverScriptExtensionsTransformAction::class.java) { transformSpec ->
|
||||||
transformSpec.to.attribute(artifactType, scriptFilesExtensions)
|
transformSpec.from.attribute(artifactType, "jar")
|
||||||
}
|
transformSpec.to.attribute(artifactType, scriptFilesExtensions)
|
||||||
|
|
||||||
registerTransform(DiscoverScriptExtensionsTransformAction::class.java) { transformSpec ->
|
}
|
||||||
transformSpec.from.attribute(artifactType, "classes")
|
registerTransform(DiscoverScriptExtensionsTransformAction::class.java) { transformSpec ->
|
||||||
transformSpec.to.attribute(artifactType, scriptFilesExtensions)
|
transformSpec.from.attribute(artifactType, "classes")
|
||||||
|
transformSpec.to.attribute(artifactType, scriptFilesExtensions)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun DependencyHandler.registerOnceDiscoverScriptExtensionsTransform() {
|
private fun <T> Project.withRegisteredDiscoverScriptExtensionsTransform(block: () -> T): T {
|
||||||
if (!extensions.extraProperties.has("DiscoverScriptExtensionsTransform")) {
|
if (!project.extensions.extraProperties.has("DiscoverScriptExtensionsTransform")) {
|
||||||
registerDiscoverScriptExtensionsTransform()
|
registerDiscoverScriptExtensionsTransform()
|
||||||
extensions.extraProperties["DiscoverScriptExtensionsTransform"] = true
|
project.extensions.extraProperties["DiscoverScriptExtensionsTransform"] = true
|
||||||
}
|
}
|
||||||
|
return block()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val artifactType = Attribute.of("artifactType", String::class.java)
|
private val artifactType = Attribute.of("artifactType", String::class.java)
|
||||||
|
|
||||||
private const val scriptFilesExtensions = "script-files-extensions"
|
private val scriptFilesExtensions = "script-files-extensions"
|
||||||
|
|
||||||
private fun Configuration.discoverScriptExtensionsFiles() =
|
private fun Configuration.discoverScriptExtensionsFiles() =
|
||||||
incoming.artifactView {
|
incoming.artifactView {
|
||||||
|
|||||||
Reference in New Issue
Block a user