• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import org.gradle.api.DefaultTask
2import org.gradle.api.tasks.OutputFile
3import org.gradle.api.tasks.TaskAction
4
5class ProvideBuildClasspathTask extends DefaultTask {
6    @OutputFile File outFile
7
8    @TaskAction
9    public void writeProperties() throws Exception {
10        final Properties props = new Properties()
11
12        String preinstrumentedKey = "robolectric.usePreinstrumentedJars";
13        boolean usePreinstrumentedJars =
14            Boolean.parseBoolean(
15              System.getProperty(preinstrumentedKey, "true"));
16
17        AndroidSdk.ALL_SDKS.each { androidSdk ->
18            String coordinates =
19              usePreinstrumentedJars ?
20                androidSdk.preinstrumentedCoordinates : androidSdk.coordinates;
21            def config =
22                project.configurations.create("sdk${androidSdk.apiLevel}")
23            project.dependencies.add(
24                "sdk${androidSdk.apiLevel}",
25                coordinates)
26            props.setProperty(
27                coordinates,
28                config.files.join(File.pathSeparator))
29        }
30
31        File outDir = outFile.parentFile
32        if (!outDir.directory) outDir.mkdirs()
33        outFile.withPrintWriter { out ->
34            props.store(out, "# GENERATED by ${this} -- do not edit")
35        }
36    }
37}
38