From 1d1c6d5e0b64bd639705d88d8c9afc5f61982df7 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Date: Tue, 22 Mar 2022 23:26:26 +0000 Subject: [PATCH] KT-45777: Change classpath-snapshot directory location Incremental states for Kotlin compilation are stored inside the `/build/kotlin/` directory. Previously, that directory was @LocalState, so we had to keep the `classpath-snapshot` @OutputDirectory outside it. Now, that directory has been made a parent containing @OutputDirectory's @LocalState's, so we can safely move the `classpath-snapshot` directory to it. Test: Existing tests should pass (location change has no functional impact) ^KT-45777 In Progress --- .../gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt | 9 +-------- .../kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt | 6 +----- .../kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 4 ++-- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index c19e870438b..02f11aed975 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -245,8 +245,6 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To private fun Kapt3SubpluginContext.getKaptIncrementalDataDir() = temporaryKaptDirectory("incrementalData") - private fun Kapt3SubpluginContext.getKaptClasspathSnapshotDir() = temporaryKaptDirectory("classpath-snapshot") - private fun Kapt3SubpluginContext.getKaptIncrementalAnnotationProcessingCache() = temporaryKaptDirectory("incApCache") private fun Kapt3SubpluginContext.temporaryKaptDirectory( @@ -672,12 +670,7 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To val kaptTaskName = getKaptTaskName("kaptGenerateStubs") val kaptTaskProvider = project.registerTask(kaptTaskName) - val configurator = KaptGenerateStubsTask.Configurator( - kotlinCompile, - kotlinCompilation, - properties, - getKaptClasspathSnapshotDir() - ) + val configurator = KaptGenerateStubsTask.Configurator(kotlinCompile, kotlinCompilation, properties) configurator.runAtConfigurationTime(kaptTaskProvider, project) kaptTaskProvider.configure { kaptTask -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt index 05d86b813bd..35991e4d3aa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt @@ -47,13 +47,9 @@ abstract class KaptGenerateStubsTask @Inject constructor( internal class Configurator( private val kotlinCompileTaskProvider: TaskProvider, kotlinCompilation: KotlinCompilationData<*>, - properties: PropertiesProvider, - private val classpathSnapshotDir: File + properties: PropertiesProvider ) : KotlinCompile.Configurator(kotlinCompilation, properties) { - override fun getClasspathSnapshotDir(task: KaptGenerateStubsTask): Provider = - task.project.objects.directoryProperty().fileValue(classpathSnapshotDir) - override fun configure(task: KaptGenerateStubsTask) { super.configure(task) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 9da06c3b48c..6c769e92fab 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -292,8 +292,8 @@ abstract class AbstractKotlinCompile @Inject constr private fun getKotlinBuildDir(task: T): Provider = task.project.layout.buildDirectory.dir("$KOTLIN_BUILD_DIR_NAME/${task.name}") - protected open fun getClasspathSnapshotDir(task: T): Provider = - task.project.layout.buildDirectory.dir("$KOTLIN_BUILD_DIR_NAME/classpath-snapshot/${task.name}") + protected fun getClasspathSnapshotDir(task: T): Provider = + getKotlinBuildDir(task).map { it.dir("classpath-snapshot") } } init {