From 1e87ba3485abc044ec24b36f86d13f0a4d7cc69d Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Mon, 3 Jul 2023 10:22:18 +0200 Subject: [PATCH] [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 --- .../plugin/Kotlin2JvmSourceSetProcessor.kt | 1 + .../diagnostics/renderReportedDiagnostics.kt | 4 +++- .../gradle/targets/jvm/KotlinJvmTarget.kt | 3 ++- .../targets/jvm/KotlinJvmTargetConfigurator.kt | 17 +---------------- 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt index 38af7d69ba3..794124c407f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt @@ -13,6 +13,7 @@ import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.AbstractCompile import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions 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.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/renderReportedDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/renderReportedDiagnostics.kt index 49bb156cf3b..66173d38989 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/renderReportedDiagnostics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/renderReportedDiagnostics.kt @@ -25,7 +25,9 @@ internal fun renderReportedDiagnostic( 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)) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt index 026302f7de9..96bcbab8352 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt @@ -20,6 +20,7 @@ import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension 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.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget @@ -137,7 +138,7 @@ abstract class KotlinJvmTarget @Inject constructor( setupDependenciesCrossInclusionForJava(compilation, javaSourceSet) } - project.afterEvaluate { + project.launchInStage(AfterFinaliseDsl) { javaSourceSets.all { javaSourceSet -> copyUserDefinedAttributesToJavaConfigurations(javaSourceSet) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt index b3d8bb4733d..dc98a5ce02a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt @@ -25,21 +25,6 @@ open class KotlinJvmTargetConfigurator : override fun configurePlatformSpecificModel(target: KotlinJvmTarget) { super.configurePlatformSpecificModel(target) super.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) { @@ -57,7 +42,7 @@ open class KotlinJvmTargetConfigurator : override fun createTestRun( name: String, - target: KotlinJvmTarget + target: KotlinJvmTarget, ): KotlinJvmTestRun = KotlinJvmTestRun(name, target).apply { val testTaskOrProvider = target.project.registerTask(testTaskName) { testTask -> testTask.targetName = target.disambiguationClassifier