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 File outFile 10 11 @TaskAction 12 public void writeProperties() throws Exception { 13 File outDir = outFile.parentFile 14 if (!outDir.directory) outDir.mkdirs() 15 outFile.withPrintWriter { out -> 16 out << "# GENERATED by ${this} -- do not edit\n" 17 18 AndroidSdk.ALL_SDKS.each { androidSdk -> 19 def config = project.configurations.create("processor_sdk${androidSdk.apiLevel}") 20 project.dependencies.add("processor_sdk${androidSdk.apiLevel}", androidSdk.coordinates) 21 def sdkPath = config.files.first().getAbsolutePath() 22 out << "${sdkPath}\n" 23 } 24 } 25 } 26} 27 28task('generateSdksFile', type: GenerateSdksFileTask) { 29 outFile = new File(project.rootProject.buildDir, 'sdks.txt') 30} 31 32tasks['classes'].dependsOn(generateSdksFile) 33 34dependencies { 35 api project(":annotations") 36 api project(":shadowapi") 37 38 compileOnly "com.google.code.findbugs:jsr305:3.0.2" 39 api "org.ow2.asm:asm:${asmVersion}" 40 api "org.ow2.asm:asm-commons:${asmVersion}" 41 api "com.google.guava:guava:$guavaJREVersion" 42 api "com.google.code.gson:gson:2.10.1" 43 implementation 'com.google.auto:auto-common:1.1.2' 44 45 def toolsJar = Jvm.current().getToolsJar() 46 if (toolsJar != null) { 47 implementation files(toolsJar) 48 } 49 50 testImplementation "javax.annotation:jsr250-api:1.0" 51 testImplementation "junit:junit:${junitVersion}" 52 testImplementation "org.mockito:mockito-core:${mockitoVersion}" 53 testImplementation "com.google.testing.compile:compile-testing:0.21.0" 54 testImplementation "com.google.truth:truth:${truthVersion}" 55} 56