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)
+ }
+}