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 a1aefe7eff8..838a74a924e 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 @@ -6,9 +6,6 @@ package org.jetbrains.kotlin.gradle.internal import com.android.build.gradle.BaseExtension -import com.android.build.gradle.api.AndroidSourceSet -import com.android.build.gradle.api.BaseVariant -import com.android.build.gradle.api.SourceKind import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency @@ -32,6 +29,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.configuration.* +import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.gradle.utils.createResolvable import org.jetbrains.kotlin.gradle.utils.findResolvable import org.jetbrains.kotlin.gradle.utils.whenEvaluated @@ -263,11 +261,13 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To } } - val androidVariantData: BaseVariant? = (kotlinCompilation as? KotlinJvmAndroidCompilation)?.androidVariant + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") + val androidVariantData: DeprecatedAndroidBaseVariant? = (kotlinCompilation as? KotlinJvmAndroidCompilation)?.androidVariant val sourceSetName = if (androidVariantData != null) { for (provider in androidVariantData.sourceSets) { - handleSourceSet((provider as AndroidSourceSet).name) + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") + handleSourceSet((provider as DeprecatedAndroidSourceSet).name) } androidVariantData.name } else { @@ -303,7 +303,8 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To // Avoid circular dependency: the stubs task need the Java sources, but the Java sources generated by Kapt should be // excluded, as the Kapt tasks depend on the stubs ones, and having them in the input would lead to a cycle val kaptJavaOutput = kaptTaskProvider.get().destinationDir.get().asFile - androidVariantData.getSourceFolders(SourceKind.JAVA).filter { it.dir != kaptJavaOutput } + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") + androidVariantData.getSourceFolders(DeprecatedAndroidSourceKind.JAVA).filter { it.dir != kaptJavaOutput } } ) } @@ -570,7 +571,7 @@ internal fun getNonAndroidDslApOptions( kaptExtension: KaptExtension, project: Project, kotlinSourcesOutputDir: Iterable, - variantData: BaseVariant?, + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") variantData: DeprecatedAndroidBaseVariant?, androidExtension: BaseExtension? ): Provider> { return project.provider { @@ -598,15 +599,17 @@ private fun encodeList(options: Map): String { // Gradle plugin on the project's plugin classpath private object KaptWithAndroid { // Avoid loading the BaseVariant type at call sites and instead lazily load it when evaluation reaches it in the body using inline: - @Suppress("NOTHING_TO_INLINE") - inline fun androidVariantData(context: Kapt3GradleSubplugin.Kapt3SubpluginContext): BaseVariant? = context.variantData as? BaseVariant + @Suppress("NOTHING_TO_INLINE", "TYPEALIAS_EXPANSION_DEPRECATION") + inline fun androidVariantData( + context: Kapt3GradleSubplugin.Kapt3SubpluginContext + ): DeprecatedAndroidBaseVariant? = context.variantData as? DeprecatedAndroidBaseVariant @Suppress("NOTHING_TO_INLINE") // Avoid loading the BaseVariant type at call sites and instead lazily load it when evaluation reaches it in the body using inline: inline fun registerGeneratedJavaSourceForAndroid( kapt3SubpluginContext: Kapt3GradleSubplugin.Kapt3SubpluginContext, project: Project, - variantData: BaseVariant, + @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") variantData: DeprecatedAndroidBaseVariant, kaptTask: TaskProvider ) { val kaptSourceOutput = project.fileTree(kapt3SubpluginContext.sourcesOutputDir).builtBy(kaptTask) @@ -677,14 +680,17 @@ internal fun checkAndroidAnnotationProcessorDependencyUsage(project: Project) { } } -private val BaseVariant.annotationProcessorOptions: Map? +@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") +private val DeprecatedAndroidBaseVariant.annotationProcessorOptions: Map? get() = javaCompileOptions.annotationProcessorOptions.arguments -private val BaseVariant.annotationProcessorOptionProviders: List +@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") +private val DeprecatedAndroidBaseVariant.annotationProcessorOptionProviders: List get() = javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders //TODO once the Android plugin reaches its 3.0.0 release, consider compiling against it (remove the reflective call) -private val BaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection? +@Suppress("TYPEALIAS_EXPANSION_DEPRECATION") +private val DeprecatedAndroidBaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection? get() = this::class.java.methods .find { it.name == "getDataBindingDependencyArtifacts" } ?.also { it.isAccessible = true } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/androidCompat.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/androidCompat.kt new file mode 100644 index 00000000000..46df0415b30 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/androidCompat.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2023 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. + */ + +@file:Suppress("DEPRECATION") + +package org.jetbrains.kotlin.gradle.utils + +internal typealias DeprecatedAndroidSourceSet = com.android.build.gradle.api.AndroidSourceSet +internal typealias DeprecatedAndroidBaseVariant = com.android.build.gradle.api.BaseVariant +internal typealias DeprecatedAndroidSourceKind = com.android.build.gradle.api.SourceKind