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