xref: /aosp_15_r20/system/core/healthd/Android.bp (revision 00c7fec1bb09f3284aad6a6f96d2f63dfc3650ad)
1package {
2    default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5cc_defaults {
6    name: "libbatterymonitor_defaults",
7    cflags: [
8        "-Wall",
9        "-Werror",
10    ],
11    vendor_available: true,
12    recovery_available: true,
13    export_include_dirs: ["include"],
14    shared_libs: [
15        "libutils",
16        "libbase",
17
18        // Need HealthInfo definition from headers of these shared
19        // libraries. Clients don't need to link to these.
20        "[email protected]",
21    ],
22    header_libs: ["libhealthd_headers"],
23    export_header_lib_headers: ["libhealthd_headers"],
24}
25
26cc_defaults {
27    name: "libhealthd_charger_ui_defaults",
28    vendor_available: true,
29    export_include_dirs: [
30        "include",
31        "include_charger",
32    ],
33
34    static_libs: [
35        "libcharger_sysprop",
36        "libhealthd_draw",
37        "libhealthloop",
38        "libminui",
39    ],
40
41    shared_libs: [
42        "libbase",
43        "libcutils",
44        "liblog",
45        "libpng",
46        "libsuspend",
47        "libutils",
48    ],
49
50    header_libs: [
51        "libhealthd_headers",
52    ],
53
54    srcs: [
55        "healthd_mode_charger.cpp",
56        "AnimationParser.cpp",
57    ],
58
59    target: {
60        vendor: {
61            exclude_static_libs: [
62                "libcharger_sysprop",
63            ],
64        },
65    },
66}
67
68cc_library_headers {
69    name: "libhealthd_headers",
70    vendor_available: true,
71    recovery_available: true,
72    export_include_dirs: ["include"],
73    header_libs: ["libbatteryservice_headers"],
74    export_header_lib_headers: ["libbatteryservice_headers"],
75}
76
77cc_library_static {
78    name: "libbatterymonitor",
79    defaults: ["libbatterymonitor_defaults"],
80    srcs: ["BatteryMonitor.cpp"],
81    static_libs: [
82        "android.hardware.health-V4-ndk",
83    ],
84    whole_static_libs: [
85        // Need to translate HIDL to AIDL to support legacy APIs in
86        // BatteryMonitor.
87        "android.hardware.health-translate-ndk",
88    ],
89}
90
91// TODO(b/251425963): remove when android.hardware.health is upgraded to V2.
92cc_library_static {
93    name: "libbatterymonitor-V1",
94    defaults: ["libbatterymonitor_defaults"],
95    srcs: ["BatteryMonitor_v1.cpp"],
96    static_libs: [
97        "android.hardware.health-V1-ndk",
98    ],
99    whole_static_libs: [
100        // Need to translate HIDL to AIDL to support legacy APIs in
101        // BatteryMonitor.
102        "android.hardware.health-translate-V1-ndk",
103    ],
104}
105
106cc_library_static {
107    name: "libhealthd_charger_nops",
108    recovery_available: true,
109
110    srcs: [
111        "healthd_mode_charger_nops.cpp",
112    ],
113
114    cflags: [
115        "-Wall",
116        "-Werror",
117    ],
118
119    header_libs: [
120        "libhealthd_headers",
121    ],
122
123    static_libs: [
124        "libhealthloop",
125        "libhealth2impl",
126    ],
127
128    shared_libs: [
129        "[email protected]",
130        "libutils",
131    ],
132}
133
134sysprop_library {
135    name: "charger_sysprop",
136    recovery_available: true,
137    srcs: ["charger.sysprop"],
138    property_owner: "Platform",
139    api_packages: ["android.sysprop"],
140}
141
142cc_library_static {
143    name: "libhealthd_draw",
144    vendor_available: true,
145    export_include_dirs: ["."],
146    static_libs: [
147        "libcharger_sysprop",
148        "libminui",
149    ],
150    shared_libs: [
151        "libbase",
152    ],
153    header_libs: ["libbatteryservice_headers"],
154
155    srcs: ["healthd_draw.cpp"],
156
157    target: {
158        vendor: {
159            exclude_static_libs: [
160                "libcharger_sysprop",
161            ],
162        },
163    },
164}
165
166cc_library_static {
167    name: "libhealthd_charger_ui",
168    defaults: ["libhealthd_charger_ui_defaults"],
169
170    static_libs: [
171        "android.hardware.health-V4-ndk",
172        "android.hardware.health-translate-ndk",
173    ],
174
175    export_static_lib_headers: [
176        "android.hardware.health-V4-ndk",
177    ],
178}
179
180// TODO(b/251425963): remove when android.hardware.health is upgraded to V2.
181cc_library_static {
182    name: "libhealthd_charger_ui-V1",
183    defaults: ["libhealthd_charger_ui_defaults"],
184
185    static_libs: [
186        "android.hardware.health-V1-ndk",
187        "android.hardware.health-translate-V1-ndk",
188    ],
189
190    export_static_lib_headers: [
191        "android.hardware.health-V1-ndk",
192    ],
193}
194
195cc_library_static {
196    name: "libhealthd_charger",
197    export_include_dirs: [
198        "include",
199        "include_charger",
200    ],
201
202    static_libs: [
203        "[email protected]",
204        "libcharger_sysprop",
205        "libhealth2impl",
206        "libhealthd_charger_ui",
207    ],
208
209    shared_libs: [
210        "[email protected]",
211        "libbase",
212        "libcutils",
213        "liblog",
214        "libutils",
215    ],
216
217    srcs: [
218        "healthd_mode_charger_hidl.cpp",
219    ],
220}
221
222cc_defaults {
223    name: "charger_defaults",
224    local_include_dirs: [
225        "include_charger",
226    ],
227
228    cflags: [
229        "-Wall",
230        "-Werror",
231    ],
232
233    shared_libs: [
234        // common
235        "libbase",
236        "libcutils",
237        "libhidlbase",
238        "liblog",
239        "libutils",
240
241        // system charger only
242        "libpng",
243    ],
244
245    static_libs: [
246        // common
247        "[email protected]",
248        "android.hardware.health-V4-ndk",
249        "libbatterymonitor",
250        "libcharger_sysprop",
251        "libhealthd_charger_nops",
252        "libhealthloop",
253        "libhealth2impl",
254
255        // system charger only
256        "libhealthd_draw",
257        "libhealthd_charger",
258        "libhealthd_charger_ui",
259        "libminui",
260        "libsuspend",
261    ],
262}
263
264cc_binary {
265    name: "charger",
266    defaults: ["charger_defaults"],
267    recovery_available: true,
268    srcs: [
269        "charger.cpp",
270        "charger_utils.cpp",
271    ],
272    shared_libs: [
273        "[email protected]",
274        "[email protected]",
275    ],
276
277    target: {
278        recovery: {
279            // No UI and libsuspend for recovery charger.
280            cflags: [
281                "-DCHARGER_FORCE_NO_UI=1",
282            ],
283            exclude_shared_libs: [
284                "libpng",
285            ],
286            exclude_static_libs: [
287                "libhealthd_draw",
288                "libhealthd_charger",
289                "libhealthd_charger_ui",
290                "libminui",
291                "libsuspend",
292            ],
293        },
294    },
295}
296
297cc_test {
298    name: "charger_test",
299    defaults: ["charger_defaults"],
300    srcs: ["charger_test.cpp"],
301    static_libs: [
302        "[email protected]",
303        "[email protected]",
304        "[email protected]",
305    ],
306}
307
308cc_test {
309    name: "libhealthd_charger_test",
310    defaults: ["charger_defaults"],
311    srcs: [
312        "AnimationParser_test.cpp",
313        "healthd_mode_charger_test.cpp",
314    ],
315    static_libs: [
316        "[email protected]",
317        "[email protected]",
318        "[email protected]",
319        "libgmock",
320    ],
321    test_suites: [
322        "general-tests",
323        "device-tests",
324    ],
325    data: [
326        ":libhealthd_charger_test_data",
327    ],
328    require_root: true,
329}
330
331// /system/etc/res/images/charger/battery_fail.png
332prebuilt_etc {
333    name: "system_core_charger_res_images_battery_fail.png",
334    src: "images/battery_fail.png",
335    relative_install_path: "res/images/charger",
336    filename: "battery_fail.png",
337}
338
339// /system/etc/res/images/charger/battery_scale.png
340prebuilt_etc {
341    name: "system_core_charger_res_images_battery_scale.png",
342    src: "images/battery_scale.png",
343    relative_install_path: "res/images/charger",
344    filename: "battery_scale.png",
345}
346
347phony {
348    name: "charger_res_images",
349    required: [
350        "system_core_charger_res_images_battery_fail.png",
351        "system_core_charger_res_images_battery_scale.png",
352    ],
353}
354
355// /vendor/etc/res/images/default/charger/battery_fail.png
356prebuilt_etc {
357    name: "system_core_charger_res_images_battery_fail.png_default_vendor",
358    src: "images/battery_fail.png",
359    relative_install_path: "res/images/default/charger",
360    vendor: true,
361    filename: "battery_fail.png",
362}
363
364// /vendor/etc/res/images/default/charger/battery_scale.png
365prebuilt_etc {
366    name: "system_core_charger_res_images_battery_scale.png_default_vendor",
367    src: "images/battery_scale.png",
368    relative_install_path: "res/images/default/charger",
369    vendor: true,
370    filename: "battery_scale.png",
371}
372
373phony {
374    name: "charger_res_images_vendor",
375    required: [
376        "system_core_charger_res_images_battery_fail.png_default_vendor",
377        "system_core_charger_res_images_battery_scale.png_default_vendor",
378    ],
379}
380