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