Configure value of useKsp2 flag in AndroidXPlugin

BUG: 344563182

Change-Id: I09697b7e64b44cc6f8ce9b6e31de9c36218212d4
diff --git a/benchmark/benchmark-common/build.gradle b/benchmark/benchmark-common/build.gradle
index 272d49f..9779be1 100644
--- a/benchmark/benchmark-common/build.gradle
+++ b/benchmark/benchmark-common/build.gradle
@@ -118,6 +118,3 @@
     }
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
index 8c10736..a617199 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
@@ -71,6 +71,8 @@
 import com.android.build.gradle.api.PrivacySandboxSdkPlugin
 import com.android.build.gradle.tasks.factory.AndroidUnitTest
 import com.android.utils.appendCapitalized
+import com.google.devtools.ksp.gradle.KspExtension
+import com.google.devtools.ksp.gradle.KspGradleSubplugin
 import com.google.protobuf.gradle.ProtobufExtension
 import com.google.protobuf.gradle.ProtobufPlugin
 import java.io.File
@@ -166,6 +168,7 @@
                 is LibraryPlugin -> configureWithLibraryPlugin(project, androidXExtension)
                 is AppPlugin -> configureWithAppPlugin(project, androidXExtension)
                 is TestPlugin -> configureWithTestPlugin(project, androidXExtension)
+                is KspGradleSubplugin -> configureWithKspPlugin(project, androidXExtension)
                 is KotlinMultiplatformAndroidPlugin ->
                     configureWithKotlinMultiplatformAndroidPlugin(
                         project,
@@ -659,6 +662,13 @@
         project.configureJavaCompilationWarnings(androidXExtension)
     }
 
+    private fun configureWithKspPlugin(project: Project, androidXExtension: AndroidXExtension) =
+        project.extensions.getByType<KspExtension>().apply {
+            useKsp2.set(
+                androidXExtension.kotlinTarget.map { it.apiVersion == KotlinVersion.KOTLIN_2_0 }
+            )
+        }
+
     private fun configureWithKotlinMultiplatformAndroidPlugin(
         project: Project,
         kotlinMultiplatformAndroidTarget: KotlinMultiplatformAndroidLibraryTarget,
diff --git a/hilt/hilt-navigation-compose/build.gradle b/hilt/hilt-navigation-compose/build.gradle
index 886290b..04eeff9 100644
--- a/hilt/hilt-navigation-compose/build.gradle
+++ b/hilt/hilt-navigation-compose/build.gradle
@@ -83,6 +83,3 @@
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/hilt/hilt-navigation-fragment/build.gradle b/hilt/hilt-navigation-fragment/build.gradle
index c27611f..4c09c2f 100644
--- a/hilt/hilt-navigation-fragment/build.gradle
+++ b/hilt/hilt-navigation-fragment/build.gradle
@@ -74,6 +74,3 @@
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/hilt/hilt-navigation/build.gradle b/hilt/hilt-navigation/build.gradle
index 942c860..711cf00 100644
--- a/hilt/hilt-navigation/build.gradle
+++ b/hilt/hilt-navigation/build.gradle
@@ -54,6 +54,3 @@
     namespace = "androidx.hilt.navigation"
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/benchmark/build.gradle b/room/benchmark/build.gradle
index 95a66fb..ca33691 100644
--- a/room/benchmark/build.gradle
+++ b/room/benchmark/build.gradle
@@ -59,6 +59,3 @@
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/integration-tests/kotlintestapp/build.gradle b/room/integration-tests/kotlintestapp/build.gradle
index 8568128..ec3391c 100644
--- a/room/integration-tests/kotlintestapp/build.gradle
+++ b/room/integration-tests/kotlintestapp/build.gradle
@@ -139,7 +139,3 @@
         )
     )
 }
-
-ksp {
-    useKsp2 = true
-}
\ No newline at end of file
diff --git a/room/integration-tests/multiplatformtestapp/build.gradle b/room/integration-tests/multiplatformtestapp/build.gradle
index 94ad972..bb51e3d 100644
--- a/room/integration-tests/multiplatformtestapp/build.gradle
+++ b/room/integration-tests/multiplatformtestapp/build.gradle
@@ -133,7 +133,3 @@
 androidx {
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
-
-ksp {
-    useKsp2 = true
-}
\ No newline at end of file
diff --git a/room/room-paging-guava/build.gradle b/room/room-paging-guava/build.gradle
index 3b3d0e6..20972b5 100644
--- a/room/room-paging-guava/build.gradle
+++ b/room/room-paging-guava/build.gradle
@@ -64,6 +64,3 @@
     namespace = "androidx.room.paging.guava"
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/room-paging-rxjava2/build.gradle b/room/room-paging-rxjava2/build.gradle
index 878eac6..d31ae7b 100644
--- a/room/room-paging-rxjava2/build.gradle
+++ b/room/room-paging-rxjava2/build.gradle
@@ -63,6 +63,3 @@
     namespace = "androidx.room.paging.rxjava2"
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/room-paging-rxjava3/build.gradle b/room/room-paging-rxjava3/build.gradle
index d6e9708..3740dc2 100644
--- a/room/room-paging-rxjava3/build.gradle
+++ b/room/room-paging-rxjava3/build.gradle
@@ -63,6 +63,3 @@
     namespace = "androidx.room.paging.rxjava3"
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/room-paging/build.gradle b/room/room-paging/build.gradle
index 458f3b2..7041ca9 100644
--- a/room/room-paging/build.gradle
+++ b/room/room-paging/build.gradle
@@ -109,6 +109,3 @@
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
 
-ksp {
-    useKsp2 = true
-}
diff --git a/room/room-runtime/build.gradle b/room/room-runtime/build.gradle
index 0e7c0ed..c7c76a0 100644
--- a/room/room-runtime/build.gradle
+++ b/room/room-runtime/build.gradle
@@ -230,6 +230,3 @@
     kotlinTarget = KotlinTarget.KOTLIN_2_0
 }
 
-ksp {
-    useKsp2 = true
-}