1616 */
1717package com.google.devtools.ksp.gradle
1818
19+ import com.android.build.api.AndroidPluginVersion
1920import com.android.build.api.variant.Component
2021import com.google.devtools.ksp.KspExperimental
2122import com.google.devtools.ksp.gradle.model.builder.KspModelBuilder
23+ import com.google.devtools.ksp.gradle.utils.MINIMUM_SUPPORTED_AGP_VERSION
2224import com.google.devtools.ksp.gradle.utils.canUseGeneratedKotlinApi
2325import com.google.devtools.ksp.gradle.utils.canUseInternalKspApis
2426import com.google.devtools.ksp.gradle.utils.enableProjectIsolationCompatibleCodepath
27+ import com.google.devtools.ksp.gradle.utils.getAgpVersion
2528import com.google.devtools.ksp.gradle.utils.isAgpBuiltInKotlinUsed
2629import com.google.devtools.ksp.gradle.utils.useLegacyVariantApi
2730import org.gradle.api.Project
@@ -116,6 +119,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
116119 registry.register(KspModelBuilder ())
117120
118121 target.plugins.withId(" com.android.base" ) {
122+ checkMinimumAgpVersion(target.getAgpVersion())
119123 val androidComponents =
120124 target.extensions.findByType(com.android.build.api.variant.AndroidComponentsExtension ::class .java)!!
121125
@@ -130,6 +134,15 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
130134 }
131135 }
132136
137+ private fun checkMinimumAgpVersion (agpVersion : AndroidPluginVersion ? ) {
138+ if (agpVersion != null && agpVersion < MINIMUM_SUPPORTED_AGP_VERSION ) {
139+ throw RuntimeException (
140+ " The minimum support AGP version is ${MINIMUM_SUPPORTED_AGP_VERSION .version} . " +
141+ " Please upgrade the AGP version in your project."
142+ )
143+ }
144+ }
145+
133146 override fun isApplicable (kotlinCompilation : KotlinCompilation <* >): Boolean {
134147 val project = kotlinCompilation.target.project
135148 val useKsp2 = project.extensions.getByType(KspExtension ::class .java).useKsp2.get()
0 commit comments