[Gradle] Do not create dummy 'compileClasspath' anymore

As newer AGP versions do not suffer from KT-27170 anymore and
it was causing issues for buildscripts like

```
jvm()
jvm().withJava()
```

KT-59595
This commit is contained in:
Sebastian Sellmair
2023-07-03 10:22:18 +02:00
committed by Space Team
parent e47f4137f4
commit 1e87ba3485
4 changed files with 7 additions and 18 deletions
@@ -13,6 +13,7 @@ import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.AbstractCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterFinaliseDsl
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
@@ -25,7 +25,9 @@ internal fun renderReportedDiagnostic(
ERROR -> logger.error("e: ${diagnostic.render(isVerbose)}\n") ERROR -> logger.error("e: ${diagnostic.render(isVerbose)}\n")
FATAL -> throw InvalidUserCodeException(diagnostic.render(isVerbose)) FATAL -> if (diagnostic.throwable != null)
throw InvalidUserCodeException(diagnostic.render(isVerbose), diagnostic.throwable)
else throw InvalidUserCodeException(diagnostic.render(isVerbose))
} }
} }
@@ -20,6 +20,7 @@ import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
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.KotlinPluginLifecycle.Stage.AfterFinaliseDsl
import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
@@ -137,7 +138,7 @@ abstract class KotlinJvmTarget @Inject constructor(
setupDependenciesCrossInclusionForJava(compilation, javaSourceSet) setupDependenciesCrossInclusionForJava(compilation, javaSourceSet)
} }
project.afterEvaluate { project.launchInStage(AfterFinaliseDsl) {
javaSourceSets.all { javaSourceSet -> javaSourceSets.all { javaSourceSet ->
copyUserDefinedAttributesToJavaConfigurations(javaSourceSet) copyUserDefinedAttributesToJavaConfigurations(javaSourceSet)
} }
@@ -25,21 +25,6 @@ open class KotlinJvmTargetConfigurator :
override fun configurePlatformSpecificModel(target: KotlinJvmTarget) { override fun configurePlatformSpecificModel(target: KotlinJvmTarget) {
super<KotlinOnlyTargetConfigurator>.configurePlatformSpecificModel(target) super<KotlinOnlyTargetConfigurator>.configurePlatformSpecificModel(target)
super<KotlinTargetWithTestsConfigurator>.configurePlatformSpecificModel(target) super<KotlinTargetWithTestsConfigurator>.configurePlatformSpecificModel(target)
// Create the configuration under the name 'compileClasspath', as Android lint tasks want it, KT-27170
target.project.whenEvaluated {
if (configurations.findByName("compileClasspath") == null) {
configurations.create("compileClasspath").apply {
isCanBeResolved = false
isCanBeConsumed = false
extendsFrom(
target.project.configurations.getByName(
target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).compileDependencyConfigurationName
)
)
}
}
}
} }
override fun configureCompilations(target: KotlinJvmTarget) { override fun configureCompilations(target: KotlinJvmTarget) {
@@ -57,7 +42,7 @@ open class KotlinJvmTargetConfigurator :
override fun createTestRun( override fun createTestRun(
name: String, name: String,
target: KotlinJvmTarget target: KotlinJvmTarget,
): KotlinJvmTestRun = KotlinJvmTestRun(name, target).apply { ): KotlinJvmTestRun = KotlinJvmTestRun(name, target).apply {
val testTaskOrProvider = target.project.registerTask<KotlinJvmTest>(testTaskName) { testTask -> val testTaskOrProvider = target.project.registerTask<KotlinJvmTest>(testTaskName) { testTask ->
testTask.targetName = target.disambiguationClassifier testTask.targetName = target.disambiguationClassifier