• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import org.gradle.internal.jvm.Jvm
2import org.robolectric.gradle.DeployedRoboJavaModulePlugin
3import org.robolectric.gradle.RoboJavaModulePlugin
4
5apply plugin: RoboJavaModulePlugin
6apply plugin: DeployedRoboJavaModulePlugin
7
8class GenerateSdksFileTask extends DefaultTask {
9    @OutputFile
10    File outFile
11
12    @TaskAction
13    void writeProperties() throws Exception {
14        File outDir = outFile.parentFile
15        if (!outDir.directory) outDir.mkdirs()
16        outFile.withPrintWriter { out ->
17            out << "# GENERATED by ${this} -- do not edit\n"
18
19            AndroidSdk.ALL_SDKS.each { androidSdk ->
20                def config = project.configurations.create("processor_sdk${androidSdk.apiLevel}")
21                project.dependencies.add("processor_sdk${androidSdk.apiLevel}", androidSdk.coordinates)
22                def sdkPath = config.files.first().getAbsolutePath()
23                out << "${sdkPath}\n"
24            }
25        }
26    }
27}
28
29task('generateSdksFile', type: GenerateSdksFileTask) {
30    outFile = project.rootProject.layout.buildDirectory.file('sdks.txt').get().asFile
31}
32
33tasks.named("classes").configure { task ->
34    task.dependsOn(generateSdksFile)
35}
36
37dependencies {
38    api project(":annotations")
39    api project(":shadowapi")
40
41    compileOnly libs.findbugs.jsr305
42    api libs.asm
43    api libs.asm.commons
44    api libs.asm.util
45    api libs.guava
46    api libs.gson
47    implementation libs.auto.common
48
49    def toolsJar = Jvm.current().getToolsJar()
50    if (toolsJar != null) {
51        implementation files(toolsJar)
52    }
53
54    testImplementation libs.javax.annotation.jsr250.api
55    testImplementation libs.junit4
56    testImplementation libs.mockito
57    testImplementation libs.compile.testing
58    testImplementation libs.truth
59}
60