xref: /aosp_15_r20/prebuilts/misc/common/robolectric/android-all/update.gradle (revision 847dbab7980efcc7f5706bb9c6d844b91a680afd)
1/*
2 * Modified from https://gist.github.com/xian/05c4f27da6d4156b9827842217c2cd5c
3 * Reference: http://robolectric.org/blog/2017/03/01/hermetic-builds/
4 *
5 * Run this script by `gradle -b update.gradle`
6 */
7
8defaultTasks 'copySdks'
9
10def androidSdkVersions = [
11        '4.1.2_r1-robolectric-0',
12        '4.1.2_r1-robolectric-r1',
13        '4.2.2_r1.2-robolectric-0',
14        '4.2.2_r1.2-robolectric-r1',
15        '4.3_r2-robolectric-0',
16        '4.3_r2-robolectric-r1',
17        '4.4_r1-robolectric-1',
18        '4.4_r1-robolectric-r2',
19        '5.0.0_r2-robolectric-1',
20        '5.0.2_r3-robolectric-r0',
21        '5.1.1_r9-robolectric-1',
22        '5.1.1_r9-robolectric-r2',
23        '6.0.0_r1-robolectric-0',
24        '6.0.1_r3-robolectric-0',
25        '6.0.1_r3-robolectric-r1',
26        '7.0.0_r1-robolectric-0',
27        '7.0.0_r1-robolectric-r1',
28        '7.1.0_r7-robolectric-0',
29        '7.1.0_r7-robolectric-r1',
30        'o-preview-4-robolectric-0',
31        '8.0.0_r4-robolectric-0',
32        '8.0.0_r4-robolectric-r1',
33        '8.1.0-robolectric-r4458339',
34        '9-robolectric-4913185-2',
35        '10-robolectric-5803371',
36        '11-robolectric-6757853',
37        '12-robolectric-7732740',
38        '12.1-robolectric-8229987',
39        '13-robolectric-9030017',
40]
41
42def buildDir = System.getProperty("user.dir")
43
44apply plugin: 'java'
45
46repositories {
47    mavenCentral()
48}
49
50configurations {
51    sandbox
52}
53
54def allSdkConfigurations = []
55
56androidSdkVersions.forEach { version ->
57    allSdkConfigurations << configurations.create(version)
58    dependencies.add(version, "org.robolectric:android-all:${version}")
59    dependencies.add('sandbox', "org.robolectric:android-all:${version}")
60}
61
62task copySdks(type: Copy) {
63    into "$buildDir"
64    from allSdkConfigurations
65
66    doLast {
67        // robolectric-deps file is not used in Make build, so we don't need to generate it
68    //     def f = new File("$buildDir/robolectric-deps.properties")
69    //     f.delete()
70
71    //     f << "# Place this file in your test resources dir (e.g. src/test/resources).\n"
72    //     f << "# Paths below should be absolute, or relative to this file.\n"
73    //     f << "#\n"
74
75        allSdkConfigurations.forEach { config ->
76            config.allDependencies.forEach { dep ->
77                def files = new ArrayList(config.files)
78                if (files.size != 1) {
79                    throw new RuntimeException("huh, more than one file in ${dep}? ${files}")
80                }
81    //             def file = files[0]
82    //             f << "${dep.group}\\:${dep.name}\\:${dep.version}=path/to/${file.name}\n"
83            }
84        }
85    }
86}
87