Remove usages of AGP non-API artifact
Test: ./gradlew stableaidl:stableaidl-gradle-plugin:test
Change-Id: Idf569f4b16a525f8feda81d10731f8a8729b6a91
diff --git a/stableaidl/stableaidl-gradle-plugin/build.gradle b/stableaidl/stableaidl-gradle-plugin/build.gradle
index efce547..13fded7 100644
--- a/stableaidl/stableaidl-gradle-plugin/build.gradle
+++ b/stableaidl/stableaidl-gradle-plugin/build.gradle
@@ -31,11 +31,18 @@
apply from: "../../buildSrc/kotlin-dsl-dependency.gradle"
+configurations {
+ // Config for plugin classpath to be used during tests
+ testPlugin {
+ canBeConsumed = false
+ canBeResolved = true
+ }
+}
+
dependencies {
implementation(findGradleKotlinDsl())
implementation(gradleApi())
implementation(libs.androidGradlePluginApi)
- implementation(libs.androidGradlePluginz) // Needed for BaseExtension, see b/268237729.
implementation(libs.androidToolsCommon)
implementation(libs.androidToolsRepository)
implementation(libs.androidToolsSdkCommon)
@@ -44,6 +51,9 @@
implementation(libs.guava)
implementation(libs.kotlinStdlib)
+ testPlugin(libs.androidGradlePluginz)
+
+ testImplementation(libs.androidGradlePluginz)
testImplementation(gradleTestKit())
testImplementation(project(":internal-testutils-gradle-plugin"))
testImplementation(libs.androidToolsAnalyticsProtos)
@@ -53,6 +63,10 @@
testImplementation(libs.truth)
}
+tasks.withType(PluginUnderTestMetadata.class).named("pluginUnderTestMetadata").configure {
+ it.pluginClasspath.from(configurations.testPlugin)
+}
+
gradlePlugin {
plugins {
stableAidl {
diff --git a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlExtensionImpl.kt b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlExtensionImpl.kt
index fa45f3c..ed441f7 100644
--- a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlExtensionImpl.kt
+++ b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlExtensionImpl.kt
@@ -21,7 +21,6 @@
import androidx.stableaidl.tasks.StableAidlCheckApi
import androidx.stableaidl.tasks.UpdateStableAidlApiTask
import com.android.build.api.variant.SourceDirectories
-import com.android.build.gradle.internal.tasks.factory.dependsOn
import java.io.File
import org.gradle.api.Task
import org.gradle.api.tasks.TaskProvider
@@ -67,4 +66,14 @@
internal val importSourceDirs = mutableListOf<SourceDirectories.Flat>()
internal val allTasks = mutableMapOf<String, Set<TaskProvider<*>>>()
+
+ internal fun <T : Task> TaskProvider<out T>.dependsOn(
+ vararg tasks: TaskProvider<out Task>
+ ): TaskProvider<out T> {
+ if (tasks.isEmpty().not()) {
+ configure { it.dependsOn(*tasks) }
+ }
+
+ return this
+ }
}
diff --git a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlPlugin.kt b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlPlugin.kt
index 754d5e4..6ea7e33 100644
--- a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlPlugin.kt
+++ b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/StableAidlPlugin.kt
@@ -21,7 +21,6 @@
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.DslExtension
import com.android.build.api.variant.Variant
-import com.android.build.gradle.BaseExtension
import com.android.utils.usLocaleCapitalize
import org.gradle.api.GradleException
import org.gradle.api.Plugin
@@ -196,23 +195,9 @@
*/
internal const val SOURCE_TYPE_STABLE_AIDL_IMPORTS = "stableAidlImports"
-internal fun SdkComponents.aidl(baseExtension: BaseExtension): Provider<RegularFile> =
- sdkDirectory.map {
- it.dir("build-tools").dir(baseExtension.buildToolsVersion).file(
- if (java.lang.System.getProperty("os.name").startsWith("Windows")) {
- "aidl.exe"
- } else {
- "aidl"
- }
- )
- }
-
-internal fun SdkComponents.aidlFramework(baseExtension: BaseExtension): Provider<RegularFile> =
- sdkDirectory.map {
- it.dir("platforms")
- .dir(baseExtension.compileSdkVersion!!)
- .file("framework.aidl")
- }
+internal fun SdkComponents.aidl(): Provider<RegularFile> =
+ @Suppress("UnstableApiUsage")
+ aidl.flatMap { it.executable }
/**
* Returns the AIDL import directories for the given variant of the project.
diff --git a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/internal/process/GradleProcessExecutor.kt b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/internal/process/GradleProcessExecutor.kt
index 76e13bd..d789156 100644
--- a/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/internal/process/GradleProcessExecutor.kt
+++ b/stableaidl/stableaidl-gradle-plugin/src/main/java/androidx/stableaidl/internal/process/GradleProcessExecutor.kt
@@ -15,7 +15,7 @@
*/
package androidx.stableaidl.internal.process
-import com.android.build.gradle.internal.LoggerWrapper
+import androidx.stableaidl.internal.LoggerWrapper
import com.android.ide.common.process.ProcessException
import com.android.ide.common.process.ProcessExecutor
import com.android.ide.common.process.ProcessInfo