• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//#############################################
2// Compile Robolectric processor
3//#############################################
4
5package {
6    // See: http://go/android-license-faq
7    // A large-scale-change added 'default_applicable_licenses' to import
8    // all of the 'license_kinds' from "external_robolectric-shadows_license"
9    // to get the below license kinds:
10    //   SPDX-license-identifier-Apache-2.0
11    //   SPDX-license-identifier-MIT
12    default_applicable_licenses: ["external_robolectric-shadows_license"],
13}
14
15java_library_host {
16    name: "libRobolectric_processor",
17    srcs: ["src/main/java/**/*.java"],
18    java_resource_dirs: ["src/main/resources"],
19    java_resources: ["sdks.txt"],
20    use_tools_jar: true,
21    static_libs: [
22        "Robolectric_annotations",
23        "Robolectric_shadowapi",
24        "ow2-asm-commons",
25        "guava",
26        "ow2-asm-tree",
27        "gson",
28        "ow2-asm",
29        "jsr305",
30    ],
31
32    openjdk9: {
33        javacflags: [
34            "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
35            "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
36            "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
37        ],
38    },
39}
40
41java_plugin {
42    name: "Robolectric_processor",
43    processor_class: "org.robolectric.annotation.processing.RobolectricProcessor",
44    static_libs: ["libRobolectric_processor"],
45}
46
47//#############################################
48// Compile Robolectric processor tests
49//#############################################
50java_test_host {
51    name: "Robolectric_processor_tests",
52    srcs: ["src/test/java/**/*.java"],
53    java_resource_dirs: ["src/test/resources"],
54    java_resources: [":Robolectric_processor_tests_resources"],
55
56    static_libs: [
57        "Robolectric_annotations",
58        "libRobolectric_processor",
59        "Robolectric_shadowapi",
60        "robolectric-javax.annotation-api-1.2",
61        "robolectric-compile-testing-0.19",
62        "mockito",
63        "hamcrest",
64        "guava",
65        "objenesis",
66        "junit",
67        "truth-prebuilt",
68        "gson",
69        "jsr305",
70    ],
71
72    test_suites: ["general-tests"],
73
74    // Disable annotation processing while compiling tests to avoid executing RobolectricProcessor.
75    javacflags: ["-proc:none"],
76}
77
78// Workaround: java_resource_dirs ignores *.java files
79filegroup {
80    name: "Robolectric_processor_tests_resources",
81    path: "src/test/resources",
82    srcs: ["src/test/resources/**/*.java"],
83}
84