| apply plugin: org.robolectric.gradle.RoboJavaModulePlugin |
| apply plugin: org.robolectric.gradle.DeployedRoboJavaModulePlugin |
| |
| class GenerateSdksFileTask extends DefaultTask { |
| @OutputFile File outFile |
| |
| @TaskAction |
| public void writeProperties() throws Exception { |
| File outDir = outFile.parentFile |
| if (!outDir.directory) outDir.mkdirs() |
| outFile.withPrintWriter { out -> |
| out << "# GENERATED by ${this} -- do not edit\n" |
| |
| AndroidSdk.ALL_SDKS.each { androidSdk -> |
| def config = project.configurations.create("processor_sdk${androidSdk.apiLevel}") |
| project.dependencies.add("processor_sdk${androidSdk.apiLevel}", androidSdk.coordinates) |
| def sdkPath = config.files.first().getAbsolutePath() |
| out << "${sdkPath}\n" |
| } |
| } |
| } |
| } |
| |
| task('generateSdksFile', type: GenerateSdksFileTask) { |
| dependsOn(tasks['processResources']) |
| |
| File outDir = project.sourceSets['main'].output.resourcesDir |
| outFile = new File(outDir, 'sdks.txt') |
| } |
| |
| tasks['classes'].dependsOn(generateSdksFile) |
| |
| dependencies { |
| api project(":annotations") |
| api project(":shadowapi") |
| |
| compileOnly "com.google.code.findbugs:jsr305:3.0.2" |
| api "org.ow2.asm:asm:7.3.1" |
| api "org.ow2.asm:asm-commons:7.3.1" |
| api "com.google.guava:guava:27.0.1-jre" |
| api "com.google.code.gson:gson:2.8.2" |
| |
| def toolsJar = org.gradle.internal.jvm.Jvm.current().getToolsJar() |
| if (toolsJar != null) { |
| implementation files(toolsJar) |
| } |
| |
| testImplementation "javax.annotation:jsr250-api:1.0" |
| testImplementation "junit:junit:4.13.1" |
| testImplementation "org.mockito:mockito-core:2.5.4" |
| testImplementation "com.google.testing.compile:compile-testing:0.18" |
| testImplementation "com.google.truth:truth:0.45" |
| } |