xref: /aosp_15_r20/frameworks/base/ravenwood/tools/hoststubgen/Android.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Workerpackage {
2*d57664e9SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
3*d57664e9SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
4*d57664e9SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_base_license"
5*d57664e9SAndroid Build Coastguard Worker    // to get the below license kinds:
6*d57664e9SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
7*d57664e9SAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_base_license"],
8*d57664e9SAndroid Build Coastguard Worker
9*d57664e9SAndroid Build Coastguard Worker    // OWNER: g/ravenwood
10*d57664e9SAndroid Build Coastguard Worker    // Bug component: 25698
11*d57664e9SAndroid Build Coastguard Worker    default_team: "trendy_team_ravenwood",
12*d57664e9SAndroid Build Coastguard Worker}
13*d57664e9SAndroid Build Coastguard Worker
14*d57664e9SAndroid Build Coastguard Worker// Visibility only for ravenwood prototype uses.
15*d57664e9SAndroid Build Coastguard Workergenrule_defaults {
16*d57664e9SAndroid Build Coastguard Worker    name: "ravenwood-internal-only-visibility-genrule",
17*d57664e9SAndroid Build Coastguard Worker    visibility: [
18*d57664e9SAndroid Build Coastguard Worker        ":__subpackages__",
19*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base",
20*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base/ravenwood:__subpackages__",
21*d57664e9SAndroid Build Coastguard Worker    ],
22*d57664e9SAndroid Build Coastguard Worker}
23*d57664e9SAndroid Build Coastguard Worker
24*d57664e9SAndroid Build Coastguard Worker// Visibility only for ravenwood prototype uses.
25*d57664e9SAndroid Build Coastguard Workerjava_defaults {
26*d57664e9SAndroid Build Coastguard Worker    name: "ravenwood-internal-only-visibility-java",
27*d57664e9SAndroid Build Coastguard Worker    visibility: [
28*d57664e9SAndroid Build Coastguard Worker        ":__subpackages__",
29*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base",
30*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base/ravenwood:__subpackages__",
31*d57664e9SAndroid Build Coastguard Worker    ],
32*d57664e9SAndroid Build Coastguard Worker}
33*d57664e9SAndroid Build Coastguard Worker
34*d57664e9SAndroid Build Coastguard Worker// Visibility only for ravenwood prototype uses.
35*d57664e9SAndroid Build Coastguard Workerfilegroup_defaults {
36*d57664e9SAndroid Build Coastguard Worker    name: "ravenwood-internal-only-visibility-filegroup",
37*d57664e9SAndroid Build Coastguard Worker    visibility: [
38*d57664e9SAndroid Build Coastguard Worker        ":__subpackages__",
39*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base",
40*d57664e9SAndroid Build Coastguard Worker        "//frameworks/base/ravenwood:__subpackages__",
41*d57664e9SAndroid Build Coastguard Worker    ],
42*d57664e9SAndroid Build Coastguard Worker}
43*d57664e9SAndroid Build Coastguard Worker
44*d57664e9SAndroid Build Coastguard Worker// This library contains the standard hoststubgen annotations.
45*d57664e9SAndroid Build Coastguard Worker// This is only for the prototype. The productionized version is "ravenwood-annotations".
46*d57664e9SAndroid Build Coastguard Workerjava_library {
47*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-annotations",
48*d57664e9SAndroid Build Coastguard Worker    defaults: ["ravenwood-internal-only-visibility-java"],
49*d57664e9SAndroid Build Coastguard Worker    srcs: [
50*d57664e9SAndroid Build Coastguard Worker        "annotations-src/**/*.java",
51*d57664e9SAndroid Build Coastguard Worker    ],
52*d57664e9SAndroid Build Coastguard Worker    host_supported: true,
53*d57664e9SAndroid Build Coastguard Worker
54*d57664e9SAndroid Build Coastguard Worker    sdk_version: "core_current",
55*d57664e9SAndroid Build Coastguard Worker}
56*d57664e9SAndroid Build Coastguard Worker
57*d57664e9SAndroid Build Coastguard Worker// This library contains helper classes used in the host side test environment at runtime.
58*d57664e9SAndroid Build Coastguard Worker// This library is _not_ specific to Android APIs.
59*d57664e9SAndroid Build Coastguard Workerjava_library_host {
60*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-helper-runtime",
61*d57664e9SAndroid Build Coastguard Worker    defaults: ["ravenwood-internal-only-visibility-java"],
62*d57664e9SAndroid Build Coastguard Worker    srcs: [
63*d57664e9SAndroid Build Coastguard Worker        "helper-runtime-src/**/*.java",
64*d57664e9SAndroid Build Coastguard Worker    ],
65*d57664e9SAndroid Build Coastguard Worker    libs: [
66*d57664e9SAndroid Build Coastguard Worker        "junit",
67*d57664e9SAndroid Build Coastguard Worker    ],
68*d57664e9SAndroid Build Coastguard Worker    static_libs: [
69*d57664e9SAndroid Build Coastguard Worker        "guava",
70*d57664e9SAndroid Build Coastguard Worker    ],
71*d57664e9SAndroid Build Coastguard Worker    jarjar_rules: "jarjar-rules.txt",
72*d57664e9SAndroid Build Coastguard Worker}
73*d57664e9SAndroid Build Coastguard Worker
74*d57664e9SAndroid Build Coastguard Workerjava_library {
75*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-helper-runtime.ravenwood",
76*d57664e9SAndroid Build Coastguard Worker    defaults: ["ravenwood-internal-only-visibility-java"],
77*d57664e9SAndroid Build Coastguard Worker    srcs: [
78*d57664e9SAndroid Build Coastguard Worker        "helper-runtime-src/**/*.java",
79*d57664e9SAndroid Build Coastguard Worker    ],
80*d57664e9SAndroid Build Coastguard Worker    libs: [
81*d57664e9SAndroid Build Coastguard Worker        "junit",
82*d57664e9SAndroid Build Coastguard Worker    ],
83*d57664e9SAndroid Build Coastguard Worker    static_libs: [
84*d57664e9SAndroid Build Coastguard Worker        "guava",
85*d57664e9SAndroid Build Coastguard Worker    ],
86*d57664e9SAndroid Build Coastguard Worker    jarjar_rules: "jarjar-rules.txt",
87*d57664e9SAndroid Build Coastguard Worker}
88*d57664e9SAndroid Build Coastguard Worker
89*d57664e9SAndroid Build Coastguard Worker// For sharing the code with other tools
90*d57664e9SAndroid Build Coastguard Workerjava_library_host {
91*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-lib",
92*d57664e9SAndroid Build Coastguard Worker    defaults: ["ravenwood-internal-only-visibility-java"],
93*d57664e9SAndroid Build Coastguard Worker    srcs: ["src/**/*.kt"],
94*d57664e9SAndroid Build Coastguard Worker    static_libs: [
95*d57664e9SAndroid Build Coastguard Worker        "hoststubgen-helper-runtime",
96*d57664e9SAndroid Build Coastguard Worker    ],
97*d57664e9SAndroid Build Coastguard Worker    libs: [
98*d57664e9SAndroid Build Coastguard Worker        "junit",
99*d57664e9SAndroid Build Coastguard Worker        "ow2-asm",
100*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-analysis",
101*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-commons",
102*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-tree",
103*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-util",
104*d57664e9SAndroid Build Coastguard Worker    ],
105*d57664e9SAndroid Build Coastguard Worker}
106*d57664e9SAndroid Build Coastguard Worker
107*d57664e9SAndroid Build Coastguard Worker// Host-side stub generator tool.
108*d57664e9SAndroid Build Coastguard Workerjava_binary_host {
109*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen",
110*d57664e9SAndroid Build Coastguard Worker    main_class: "com.android.hoststubgen.HostStubGenMain",
111*d57664e9SAndroid Build Coastguard Worker    static_libs: [
112*d57664e9SAndroid Build Coastguard Worker        "hoststubgen-lib",
113*d57664e9SAndroid Build Coastguard Worker        "junit",
114*d57664e9SAndroid Build Coastguard Worker        "ow2-asm",
115*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-analysis",
116*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-commons",
117*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-tree",
118*d57664e9SAndroid Build Coastguard Worker        "ow2-asm-util",
119*d57664e9SAndroid Build Coastguard Worker    ],
120*d57664e9SAndroid Build Coastguard Worker    visibility: ["//visibility:public"],
121*d57664e9SAndroid Build Coastguard Worker}
122*d57664e9SAndroid Build Coastguard Worker
123*d57664e9SAndroid Build Coastguard Workerjava_test_host {
124*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgentest",
125*d57664e9SAndroid Build Coastguard Worker    srcs: ["test/**/*.kt"],
126*d57664e9SAndroid Build Coastguard Worker    static_libs: [
127*d57664e9SAndroid Build Coastguard Worker        "hoststubgen",
128*d57664e9SAndroid Build Coastguard Worker        "truth",
129*d57664e9SAndroid Build Coastguard Worker    ],
130*d57664e9SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
131*d57664e9SAndroid Build Coastguard Worker    visibility: ["//visibility:private"],
132*d57664e9SAndroid Build Coastguard Worker}
133*d57664e9SAndroid Build Coastguard Worker
134*d57664e9SAndroid Build Coastguard Worker// File that contains the standard command line argumetns to hoststubgen.
135*d57664e9SAndroid Build Coastguard Worker// This is only for the prototype. The productionized version is "ravenwood-standard-options".
136*d57664e9SAndroid Build Coastguard Workerfilegroup {
137*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-standard-options",
138*d57664e9SAndroid Build Coastguard Worker    defaults: ["ravenwood-internal-only-visibility-filegroup"],
139*d57664e9SAndroid Build Coastguard Worker    srcs: [
140*d57664e9SAndroid Build Coastguard Worker        "hoststubgen-standard-options.txt",
141*d57664e9SAndroid Build Coastguard Worker    ],
142*d57664e9SAndroid Build Coastguard Worker}
143*d57664e9SAndroid Build Coastguard Worker
144*d57664e9SAndroid Build Coastguard Workerhoststubgen_common_options = "$(location hoststubgen) " +
145*d57664e9SAndroid Build Coastguard Worker    // "--in-jar $(location :framework-all) " +
146*d57664e9SAndroid Build Coastguard Worker    // "--policy-override-file $(location framework-policy-override.txt) " +
147*d57664e9SAndroid Build Coastguard Worker    "@$(location :hoststubgen-standard-options) " +
148*d57664e9SAndroid Build Coastguard Worker
149*d57664e9SAndroid Build Coastguard Worker    "--out-jar $(location host.jar) " +
150*d57664e9SAndroid Build Coastguard Worker
151*d57664e9SAndroid Build Coastguard Worker    // "--keep-all-classes " + // Used it for an experiment. See KeepAllClassesFilter.
152*d57664e9SAndroid Build Coastguard Worker    "--gen-keep-all-file $(location hoststubgen_keep_all.txt) " +
153*d57664e9SAndroid Build Coastguard Worker    "--gen-input-dump-file $(location hoststubgen_dump.txt) " +
154*d57664e9SAndroid Build Coastguard Worker    ""
155*d57664e9SAndroid Build Coastguard Worker
156*d57664e9SAndroid Build Coastguard Worker// Common defaults for stub generation.
157*d57664e9SAndroid Build Coastguard Worker// This one is not specific to Android APIs.
158*d57664e9SAndroid Build Coastguard Workergenrule_defaults {
159*d57664e9SAndroid Build Coastguard Worker    name: "hoststubgen-command-defaults",
160*d57664e9SAndroid Build Coastguard Worker    tools: ["hoststubgen"],
161*d57664e9SAndroid Build Coastguard Worker    srcs: [
162*d57664e9SAndroid Build Coastguard Worker        ":hoststubgen-standard-options",
163*d57664e9SAndroid Build Coastguard Worker    ],
164*d57664e9SAndroid Build Coastguard Worker    out: [
165*d57664e9SAndroid Build Coastguard Worker        "host.jar",
166*d57664e9SAndroid Build Coastguard Worker
167*d57664e9SAndroid Build Coastguard Worker        // Following files are created just as FYI.
168*d57664e9SAndroid Build Coastguard Worker        "hoststubgen_keep_all.txt",
169*d57664e9SAndroid Build Coastguard Worker        "hoststubgen_dump.txt",
170*d57664e9SAndroid Build Coastguard Worker    ],
171*d57664e9SAndroid Build Coastguard Worker}
172