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