xref: /aosp_15_r20/external/robolectric/processor/build.gradle.kts (revision e6ba16074e6af37d123cb567d575f496bf0a58ee)

<lambda>null1 import org.gradle.internal.jvm.Jvm
2 
3 plugins {
4   alias(libs.plugins.robolectric.deployed.java.module)
5   alias(libs.plugins.robolectric.java.module)
6 }
7 
8 abstract class GenerateSdksFileTask : DefaultTask() {
9   @get:OutputFile abstract var outFile: File
10 
11   @TaskAction
12   @Throws(Exception::class)
writePropertiesnull13   fun writeProperties() {
14     val outDir = outFile.parentFile
15     if (!outDir.isDirectory) {
16       outDir.mkdirs()
17     }
18 
19     outFile.printWriter().use { out ->
20       out.write("# GENERATED by $this -- do not edit\n")
21 
22       AndroidSdk.ALL_SDKS.forEach { androidSdk ->
23         val config = project.configurations.create("processor_sdk${androidSdk.apiLevel}")
24         project.dependencies.add("processor_sdk${androidSdk.apiLevel}", androidSdk.coordinates)
25 
26         val sdkPath = config.files.first().absolutePath
27         out.write("$sdkPath\n")
28       }
29     }
30   }
31 }
32 
33 val generateSdksFile by
<lambda>null34   tasks.registering(GenerateSdksFileTask::class) {
35     outFile = project.rootProject.layout.buildDirectory.file("sdks.txt").get().asFile
36   }
37 
<lambda>null38 tasks.classes.configure { dependsOn(generateSdksFile) }
39 
<lambda>null40 dependencies {
41   api(project(":annotations"))
42   api(project(":shadowapi"))
43 
44   compileOnly(libs.findbugs.jsr305)
45   api(libs.asm)
46   api(libs.asm.commons)
47   api(libs.asm.util)
48   api(libs.guava)
49   api(libs.gson)
50   implementation(libs.auto.common)
51 
52   val toolsJar = Jvm.current().getToolsJar()
53   if (toolsJar != null) {
54     implementation(files(toolsJar))
55   }
56 
57   testImplementation(libs.javax.annotation.jsr250.api)
58   testImplementation(libs.junit4)
59   testImplementation(libs.mockito)
60   testImplementation(libs.compile.testing)
61   testImplementation(libs.truth)
62 }
63