Gradle plugin for compiling and checking Stable AIDL

Copies a significant amount of test fixtures from AGP internals with
modifications to pass ktlint.

Updates buildSrc to make the plugin available within AndroidX.

Bug: 253427301
Test: StableAidlPluginTest, StableAidlCheckApiTest, StableAidlCompileTest
Change-Id: I4182f7988e2e84ee1e7f0b9d815ac54e249abf7c
diff --git a/stableaidl/stableaidl-gradle-plugin/build.gradle b/stableaidl/stableaidl-gradle-plugin/build.gradle
new file mode 100644
index 0000000..4d56951
--- /dev/null
+++ b/stableaidl/stableaidl-gradle-plugin/build.gradle
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.*
+
+plugins {
+    id 'AndroidXPlugin'
+    id 'kotlin'
+    id 'java-gradle-plugin'
+}
+
+apply from: "../../buildSrc/kotlin-dsl-dependency.gradle"
+
+dependencies {
+    implementation(findGradleKotlinDsl())
+    implementation(gradleApi())
+    implementation(libs.androidGradlePluginz)
+    implementation(libs.androidToolsCommon)
+    implementation(libs.androidToolsRepository)
+    implementation(libs.androidToolsSdkCommon)
+    implementation(libs.apacheCommonIo)
+    implementation(libs.guava)
+    implementation(libs.kotlinStdlib)
+
+    testImplementation(gradleTestKit())
+    testImplementation(project(":internal-testutils-gradle-plugin"))
+    testImplementation(libs.androidToolsAnalyticsProtos)
+    testImplementation(libs.gson)
+    testImplementation(libs.junit)
+    testImplementation(libs.kotlinTest)
+    testImplementation(libs.truth)
+}
+
+SdkResourceGenerator.generateForHostTest(project)
+
+gradlePlugin {
+    plugins {
+        stableAidl {
+            id = "androidx.stableaidl"
+            implementationClass = "androidx.stableaidl.StableAidlPlugin"
+        }
+    }
+}
+
+androidx {
+    name = "Stable AIDL Gradle Plugin"
+    type = LibraryType.GRADLE_PLUGIN
+    inceptionYear = "2022"
+    description = "Stable AIDL Gradle Plugin"
+}
+
+tasks {
+    validatePlugins {
+        failOnWarning.set(true)
+        enableStricterValidation.set(true)
+    }
+}