From b8b0b279ee2195ccbdce61e2365f123ee928532b Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 26 Aug 2022 12:48:04 +0200 Subject: [PATCH] Remove 'kapt.user.worker.api' property Now Kapt is always run via Gradle workers. ^KT-48827 Fixed --- .../AbstractKotlinAndroidGradleTests.kt | 2 +- .../jetbrains/kotlin/gradle/BaseGradleIT.kt | 2 - .../kotlin/gradle/BuildCacheRelocationIT.kt | 1 - .../kotlin/gradle/ConfigurationCacheIT.kt | 1 - .../kotlin/gradle/Kapt3AndGradleDaemon.kt | 1 - .../jetbrains/kotlin/gradle/Kapt3AndroidIT.kt | 9 +- .../org/jetbrains/kotlin/gradle/Kapt3IT.kt | 98 ++++++------- .../KaptIncrementalWithAggregatingApt.kt | 1 - .../gradle/KaptIncrementalWithIsolatingApt.kt | 1 - .../kotlin/gradle/testbase/BuildOptions.kt | 2 - .../kapt/Kapt3KotlinGradleSubplugin.kt | 66 +-------- .../internal/kapt/KaptWithKotlincTask.kt | 134 ------------------ .../gradle/tasks/configuration/KaptConfig.kt | 31 ---- 13 files changed, 54 insertions(+), 295 deletions(-) delete mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 256b4960f2b..ca40c6ed9b8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -118,7 +118,7 @@ open class KotlinAndroid36GradleIT : KotlinAndroid3GradleIT() { build( ":Android:kaptFlavor1DebugKotlin", "--dry-run", - options = defaultBuildOptions().copy(kaptOptions = KaptOptions(verbose = false, useWorkers = false)) + options = defaultBuildOptions().copy(kaptOptions = KaptOptions(verbose = false)) ) { assertSuccessful() } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index 90f2fdb2eea..0c2f3cc027d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -287,7 +287,6 @@ abstract class BaseGradleIT { data class KaptOptions( val verbose: Boolean, - val useWorkers: Boolean, val incrementalKapt: Boolean = false, val includeCompileClasspath: Boolean = true, val classLoadersCacheSize: Int? = null @@ -897,7 +896,6 @@ Finished executing task ':$taskName'| options.kaptOptions?.also { kaptOptions -> add("-Pkapt.verbose=${kaptOptions.verbose}") - add("-Pkapt.use.worker.api=${kaptOptions.useWorkers}") add("-Pkapt.incremental.apt=${kaptOptions.incrementalKapt}") add("-Pkapt.include.compile.classpath=${kaptOptions.includeCompileClasspath}") kaptOptions.classLoadersCacheSize?.also { cacheSize -> diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt index c05459472d5..9f7c8dcdfb9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt @@ -383,7 +383,6 @@ class BuildCacheRelocationIT : KGPBaseTest() { val options = defaultBuildOptions.copy( kaptOptions = BuildOptions.KaptOptions( verbose = true, - useWorkers = false, incrementalKapt = true, includeCompileClasspath = false ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt index 74c936da94b..9d7c53cfb0b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt @@ -143,7 +143,6 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() { incremental = true, kaptOptions = BuildOptions.KaptOptions( verbose = true, - useWorkers = true, incrementalKapt = true, includeCompileClasspath = false ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt index afb2f79750e..4d31e877e35 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt @@ -20,7 +20,6 @@ class Kapt3AndGradleDaemon : KGPDaemonsBaseTest() { .copy( kaptOptions = BuildOptions.KaptOptions( verbose = true, - useWorkers = true, includeCompileClasspath = false ) ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index a3e0c6e88e7..ee8876124bc 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -11,11 +11,6 @@ import org.junit.Ignore import org.junit.Test import java.io.File -class Kapt3WorkersAndroid36IT : Kapt3Android36IT() { - override fun kaptOptions(): KaptOptions = - super.kaptOptions().copy(useWorkers = true) -} - open class Kapt3Android36IT : Kapt3AndroidIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v3_6_0 @@ -142,7 +137,7 @@ class Kapt3Android42IT : BaseGradleIT() { } private fun kaptOptions(): KaptOptions = - KaptOptions(verbose = true, useWorkers = false) + KaptOptions(verbose = true) private fun CompiledProject.assertKaptSuccessful() { KAPT_SUCCESSFUL_REGEX.findAll(this.output).count() > 0 @@ -174,7 +169,7 @@ abstract class Kapt3AndroidIT : BaseGradleIT() { } protected open fun kaptOptions(): KaptOptions = - KaptOptions(verbose = true, useWorkers = false) + KaptOptions(verbose = true) fun CompiledProject.assertKaptSuccessful() { KAPT_SUCCESSFUL_REGEX.findAll(this.output).count() > 0 diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt index 07438cf739c..c7a68b8dc29 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt @@ -51,7 +51,6 @@ abstract class Kapt3BaseIT : KGPBaseTest() { protected open fun kaptOptions(): BuildOptions.KaptOptions = BuildOptions.KaptOptions( verbose = true, - useWorkers = false ) fun BuildResult.assertKaptSuccessful() { @@ -68,11 +67,52 @@ abstract class Kapt3BaseIT : KGPBaseTest() { protected val String.withPrefix get() = "kapt2/$this" } -@DisplayName("Kapt executing via workers") -open class Kapt3WorkersIT : Kapt3IT() { - override fun kaptOptions(): BuildOptions.KaptOptions = - super.kaptOptions().copy(useWorkers = true) +@DisplayName("Kapt with classloaders cache") +class Kapt3ClassLoadersCacheIT : Kapt3IT() { + override fun kaptOptions(): BuildOptions.KaptOptions = super.kaptOptions().copy( + classLoadersCacheSize = 10, + includeCompileClasspath = false + ) + @Disabled("classloaders cache is incompatible with AP discovery in classpath") + override fun testDisableDiscoveryInCompileClasspath(gradleVersion: GradleVersion) { + } + + @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") + override fun testChangesInLocalAnnotationProcessor(gradleVersion: GradleVersion) { + } + + @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") + override fun testKt19179andKt37241(gradleVersion: GradleVersion) { + } + + @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") + override fun testChangesToKaptConfigurationDoNotTriggerStubGeneration(gradleVersion: GradleVersion) { + } + + override fun testAnnotationProcessorAsFqName(gradleVersion: GradleVersion) { + project("annotationProcessorAsFqName".withPrefix, gradleVersion) { + //classloaders caching is not compatible with includeCompileClasspath + buildGradle.modify { + it.addBeforeSubstring( + "kapt \"org.jetbrains.kotlin:annotation-processor-example:\$kotlin_version\"\n", + "implementation \"org.jetbrains.kotlin:annotation-processor-example" + ) + } + + build("build") { + assertKaptSuccessful() + assertTasksExecuted(":compileKotlin", ":compileJava") + assertFileInProjectExists("build/generated/source/kapt/main/example/TestClassGenerated.java") + assertFileExists(kotlinClassesDir().resolve("example/TestClass.class")) + assertFileExists(javaClassesDir().resolve("example/TestClassGenerated.class")) + } + } + } +} + +@DisplayName("Kapt base checks") +open class Kapt3IT : Kapt3BaseIT() { @DisplayName("Kapt is skipped when no annotation processors are added") @GradleTest fun testKaptSkipped(gradleVersion: GradleVersion) { @@ -188,54 +228,6 @@ open class Kapt3WorkersIT : Kapt3IT() { } } } -} - -@DisplayName("Kapt with classloaders cache executing via workers ") -class Kapt3ClassLoadersCacheIT : Kapt3WorkersIT() { - override fun kaptOptions(): BuildOptions.KaptOptions = super.kaptOptions().copy( - classLoadersCacheSize = 10, - includeCompileClasspath = false - ) - - @Disabled("classloaders cache is incompatible with AP discovery in classpath") - override fun testDisableDiscoveryInCompileClasspath(gradleVersion: GradleVersion) { - } - - @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") - override fun testChangesInLocalAnnotationProcessor(gradleVersion: GradleVersion) { - } - - @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") - override fun testKt19179andKt37241(gradleVersion: GradleVersion) { - } - - @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project") - override fun testChangesToKaptConfigurationDoNotTriggerStubGeneration(gradleVersion: GradleVersion) { - } - - override fun testAnnotationProcessorAsFqName(gradleVersion: GradleVersion) { - project("annotationProcessorAsFqName".withPrefix, gradleVersion) { - //classloaders caching is not compatible with includeCompileClasspath - buildGradle.modify { - it.addBeforeSubstring( - "kapt \"org.jetbrains.kotlin:annotation-processor-example:\$kotlin_version\"\n", - "implementation \"org.jetbrains.kotlin:annotation-processor-example" - ) - } - - build("build") { - assertKaptSuccessful() - assertTasksExecuted(":compileKotlin", ":compileJava") - assertFileInProjectExists("build/generated/source/kapt/main/example/TestClassGenerated.java") - assertFileExists(kotlinClassesDir().resolve("example/TestClass.class")) - assertFileExists(javaClassesDir().resolve("example/TestClassGenerated.class")) - } - } - } -} - -@DisplayName("Kapt without workers") -open class Kapt3IT : Kapt3BaseIT() { @DisplayName("Should find annotation processor via FQName") @GradleTest diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt index 95453cec349..3857fa02f81 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt @@ -27,7 +27,6 @@ class KaptIncrementalWithAggregatingApt : KaptIncrementalIT() { incremental = true, kaptOptions = super.defaultBuildOptions.kaptOptions!!.copy( verbose = true, - useWorkers = true, incrementalKapt = true, includeCompileClasspath = false ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt index 1d2221521b9..6dd3d080fdc 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt @@ -30,7 +30,6 @@ class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() { incremental = true, kaptOptions = super.defaultBuildOptions.kaptOptions!!.copy( verbose = true, - useWorkers = true, incrementalKapt = true, includeCompileClasspath = false ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt index eb25573dfb9..1caa41ddd6a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt @@ -40,7 +40,6 @@ data class BuildOptions( ) { data class KaptOptions( val verbose: Boolean = false, - val useWorkers: Boolean = false, val incrementalKapt: Boolean = false, val includeCompileClasspath: Boolean = false, val classLoadersCacheSize: Int? = null @@ -102,7 +101,6 @@ data class BuildOptions( if (kaptOptions != null) { arguments.add("-Pkapt.verbose=${kaptOptions.verbose}") - arguments.add("-Pkapt.use.worker.api=${kaptOptions.useWorkers}") arguments.add("-Pkapt.incremental.apt=${kaptOptions.incrementalKapt}") arguments.add("-Pkapt.include.compile.classpath=${kaptOptions.includeCompileClasspath}") kaptOptions.classLoadersCacheSize?.let { cacheSize -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index 8fe03415a9b..6cecf5555ad 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -35,7 +35,6 @@ import org.jetbrains.kotlin.gradle.tasks.configuration.* import org.jetbrains.kotlin.gradle.tasks.locateTask import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild -import org.jetbrains.kotlin.gradle.utils.isParentOf import java.io.ByteArrayOutputStream import java.io.File import java.io.ObjectOutputStream @@ -93,17 +92,6 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To return getBooleanOptionValue(BooleanOption.KAPT_VERBOSE) } - fun Project.isUseWorkerApi(): Boolean { - return getBooleanOptionValue(BooleanOption.KAPT_USE_WORKER_API) { - """ - |Warning: '${BooleanOption.KAPT_USE_WORKER_API.optionName}' is deprecated and scheduled to be removed in Kotlin 1.8 release. - | - |By default Kapt plugin is using Gradle workers to run annotation processing. Running annotation processing - |directly in the Kotlin compiler is deprecated. - """.trimMargin() - } - } - fun Project.isIncrementalKapt(): Boolean { return getBooleanOptionValue(BooleanOption.KAPT_INCREMENTAL_APT) } @@ -214,10 +202,6 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To val defaultValue: Boolean ) { KAPT_VERBOSE("kapt.verbose", false), - KAPT_USE_WORKER_API( - "kapt.use.worker.api", // Currently doesn't have a matching KaptFlag - true - ), KAPT_INCREMENTAL_APT( "kapt.incremental.apt", true // Currently doesn't match the default value of KaptFlag.INCREMENTAL_APT, but it's fine (see https://github.com/JetBrains/kotlin/pull/3942#discussion_r532578690). @@ -302,7 +286,7 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To ) val kaptGenerateStubsTaskProvider: TaskProvider = context.createKaptGenerateStubsTask() - val kaptTaskProvider: TaskProvider = context.createKaptKotlinTask(useWorkerApi = project.isUseWorkerApi()) + val kaptTaskProvider: TaskProvider = context.createKaptKotlinTask() kaptGenerateStubsTaskProvider.configure { kaptGenerateStubsTask -> kaptGenerateStubsTask.dependsOn(*buildDependencies.toTypedArray()) @@ -333,25 +317,6 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To return project.provider { emptyList() } } - // This method should be called no more than once for each Kapt3SubpluginContext - private fun Kapt3SubpluginContext.buildOptionsForAptMode( - javacOptions: Provider> - ): Provider> { - return project.provider { - buildKaptSubpluginOptions( - kaptExtension, - project, - javacOptions.get(), - "apt", - generatedSourcesDir = listOf(sourcesOutputDir), - generatedClassesDir = listOf(getKaptGeneratedClassesDir(project, sourceSetName)), - incrementalDataDir = listOf(getKaptIncrementalDataDir()), - includeCompileClasspath = includeCompileClasspath, - kaptStubsDir = listOf(getKaptStubsDir()) - ) + getAPOptions().get() // apOptions are needed only for "apt" mode - } - } - private fun Kapt3SubpluginContext.getAPOptions(): Provider = project.provider { val androidVariantData = KaptWithAndroid.androidVariantData(this) @@ -395,15 +360,9 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To ).get() } - private fun Kapt3SubpluginContext.createKaptKotlinTask(useWorkerApi: Boolean): TaskProvider { - val taskClass = if (useWorkerApi) KaptWithoutKotlincTask::class.java else KaptWithKotlincTask::class.java + private fun Kapt3SubpluginContext.createKaptKotlinTask(): TaskProvider { val taskName = getKaptTaskName("kapt") - - val taskConfigAction = if (taskClass == KaptWithoutKotlincTask::class.java ) { - KaptWithoutKotlincConfig(kotlinCompilation.compileKotlinTaskProvider.get() as KotlinCompile, kaptExtension) - } else { - KaptWithKotlincConfig(kotlinCompilation.compileKotlinTaskProvider.get() as KotlinCompile, kaptExtension) - } + val taskConfigAction = KaptWithoutKotlincConfig(kotlinCompilation.compileKotlinTaskProvider.get() as KotlinCompile, kaptExtension) val kaptClasspathConfiguration = project.configurations.create("kaptClasspath_$taskName") .setExtendsFrom(kaptClasspathConfigurations).also { @@ -451,26 +410,13 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To task.annotationProcessorOptionProviders.add(it) } - val pluginOptions: Provider = if (taskClass == KaptWithKotlincTask::class.java) { - buildOptionsForAptMode(taskConfigAction.getJavaOptions(task.defaultJavaSourceCompatibility)) - } else { - check(taskClass == KaptWithoutKotlincTask::class.java) - getDslKaptApOptions() - }.toCompilerPluginOptions() + val pluginOptions: Provider = getDslKaptApOptions().toCompilerPluginOptions() task.kaptPluginOptions.add(pluginOptions) } - return if (taskClass == KaptWithoutKotlincTask::class.java) { - taskConfigAction as KaptWithoutKotlincConfig - project.registerTask(taskName, KaptWithoutKotlincTask::class.java, emptyList()).also { - taskConfigAction.execute(it) - } - } else { - taskConfigAction as KaptWithKotlincConfig - project.registerTask(taskName, KaptWithKotlincTask::class.java, emptyList()).also { - taskConfigAction.execute(it) - } + return project.registerTask(taskName, KaptWithoutKotlincTask::class.java, emptyList()).also { + taskConfigAction.execute(it) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt deleted file mode 100644 index ae0e1b68dcb..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.gradle.internal - -import org.gradle.api.file.ConfigurableFileCollection -import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.ListProperty -import org.gradle.api.provider.Property -import org.gradle.api.provider.Provider -import org.gradle.api.tasks.* -import org.gradle.work.InputChanges -import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments -import org.jetbrains.kotlin.compilerRunner.CompilerExecutionSettings -import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment -import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner -import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.KaptIncrementalChanges -import org.jetbrains.kotlin.gradle.internal.tasks.allOutputFiles -import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger -import org.jetbrains.kotlin.gradle.logging.GradlePrintingMessageCollector -import org.jetbrains.kotlin.gradle.plugin.CompilerPluginConfig -import org.jetbrains.kotlin.gradle.report.ReportingSettings -import org.jetbrains.kotlin.gradle.tasks.* -import org.jetbrains.kotlin.gradle.utils.newInstance -import org.jetbrains.kotlin.gradle.utils.property -import org.jetbrains.kotlin.gradle.utils.toPathsArray -import java.io.File -import javax.inject.Inject - -abstract class KaptWithKotlincTask @Inject constructor( - objectFactory: ObjectFactory -) : KaptTask(objectFactory), - CompilerArgumentAwareWithInput, - CompileUsingKotlinDaemonWithNormalization { - - @get:Classpath - abstract val pluginClasspath: ConfigurableFileCollection - - @get:Internal - val taskProvider: Provider = objectFactory.property( - objectFactory.newInstance(project.gradle, this, project) - ) - - /** Used only as task input, actual values come from [compileKotlinArgumentsContributor]. */ - @get:Nested - internal abstract val additionalPluginOptionsAsInputs: ListProperty - - override fun createCompilerArgs(): K2JVMCompilerArguments = K2JVMCompilerArguments() - - abstract override val kotlinDaemonJvmArguments: ListProperty - - @get:Internal - internal abstract val compileKotlinArgumentsContributor: Property> - - override fun setupCompilerArgs(args: K2JVMCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) { - compileKotlinArgumentsContributor.get().contributeArguments( - args, compilerArgumentsConfigurationFlags( - defaultsOnly, - ignoreClasspathResolutionErrors - )) - - args.pluginClasspaths = pluginClasspath.toPathsArray() - val pluginOptionsWithKapt: CompilerPluginOptions = kaptPluginOptions.toSingleCompilerPluginOptions().withWrappedKaptOptions( - withApClasspath = kaptClasspath, - changedFiles = changedFiles, - classpathChanges = classpathChanges, - compiledSourcesDir = compiledSources.toList(), - processIncrementally = processIncrementally - ) - - args.pluginOptions = (pluginOptionsWithKapt.arguments + args.pluginOptions!!).toTypedArray() - args.verbose = verbose.get() - } - - /** - * This will be part of the subplugin options that is not part of the input snapshotting, so just initialize it. Actual value is set - * in the task action. - */ - private var changedFiles: List = emptyList() - private var classpathChanges: List = emptyList() - private var processIncrementally = false - - @get:Internal - internal abstract val javaPackagePrefix: Property - - @get:Internal - internal abstract val reportingSettings: Property - - @TaskAction - fun compile(inputChanges: InputChanges) { - logger.debug("Running kapt annotation processing using the Kotlin compiler") - checkAnnotationProcessorClasspath() - - val incrementalChanges = getIncrementalChanges(inputChanges) - if (incrementalChanges is KaptIncrementalChanges.Known) { - changedFiles = incrementalChanges.changedSources.toList() - classpathChanges = incrementalChanges.changedClasspathJvmNames.toList() - processIncrementally = true - } - - val args = prepareCompilerArguments() - - val messageCollector = GradlePrintingMessageCollector(GradleKotlinLogger(logger), args.allWarningsAsErrors) - val outputItemCollector = OutputItemsCollectorImpl() - val environment = GradleCompilerEnvironment( - compilerClasspath.files.toList(), messageCollector, outputItemCollector, - reportingSettings = reportingSettings.get(), - outputFiles = allOutputFiles() - ) - - val compilerRunner = GradleCompilerRunner( - taskProvider.get(), - defaultKotlinJavaToolchain.get().currentJvmJdkToolsJar.orNull, - CompilerExecutionSettings( - normalizedKotlinDaemonJvmArguments.orNull, - compilerExecutionStrategy.get(), - useDaemonFallbackStrategy.get() - ), - metrics.get(), - ) - compilerRunner.runJvmCompilerAsync( - sourcesToCompile = source.files.toList(), - commonSources = emptyList(), - javaPackagePrefix = javaPackagePrefix.orNull, - args = args, - environment = environment, - jdkHome = defaultKotlinJavaToolchain.get().providedJvm.get().javaHome, - null - ) - } -} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt index 5b0da729815..9483402381c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptConfig.kt @@ -226,35 +226,4 @@ internal class KaptWithoutKotlincConfig : KaptConfig { } } -internal class KaptWithKotlincConfig(kotlinCompileTask: KotlinCompile, ext: KaptExtension) : - KaptConfig(kotlinCompileTask, ext) { - - init { - configureTask { task -> - if (project.isIncrementalKapt()) { - val incAptCacheOption = task.incAptCache.locationOnly.map { incAptCacheDir -> - CompilerPluginOptions().also { - it.addPluginArgument( - KAPT_SUBPLUGIN_ID, SubpluginOption("incrementalCache", lazy { incAptCacheDir.asFile.absolutePath }) - ) - } - } - task.kaptPluginOptions.add(incAptCacheOption) - } - - task.compilerClasspath.from(providers.provider { kotlinCompileTask.defaultCompilerClasspath }) - task.pluginClasspath.from(kotlinCompileTask.pluginClasspath) - task.additionalPluginOptionsAsInputs.value(kotlinCompileTask.pluginOptions).disallowChanges() - task.compileKotlinArgumentsContributor.set(providers.provider { kotlinCompileTask.compilerArgumentsContributor }) - task.javaPackagePrefix.set(providers.provider { kotlinCompileTask.javaPackagePrefix }) - task.reportingSettings.set(providers.provider { kotlinCompileTask.reportingSettings() }) - propertiesProvider.kotlinDaemonJvmArgs?.let { - task.kotlinDaemonJvmArguments.value(it.split("\\s+".toRegex())).disallowChanges() - } - task.compilerExecutionStrategy.convention(propertiesProvider.kotlinCompilerExecutionStrategy).finalizeValueOnRead() - task.useDaemonFallbackStrategy.convention(propertiesProvider.kotlinDaemonUseFallbackStrategy).finalizeValueOnRead() - } - } -} - private val artifactType = Attribute.of("artifactType", String::class.java) \ No newline at end of file