platform_system_core/healthd/Android.bp
Jack Wu f83e5a6ebd BatteryMonitor: fix depending on multiple versions of the same aidl_interface
When health aidl_interface version updraged, some libraries are
depending on V1 and libbatterymonitor or libhealthd_charger_ui at
the same time. It will cause multiple versions depending if
libbatterymonitor or libhealthd_charger_ui are depending on new
version.

Fork libbatterymonitor and libhealthd_charger_ui to generate two
versions, so that other libraries can depend on the same aidl_interface
version, to avoid multiple versions depending.

Bug: 251425963
Test: build
Change-Id: I37ba23169428677550176916e5d0b52c154d7b85
Signed-off-by: Jack Wu <wjack@google.com>
2023-01-11 08:58:46 +08:00

413 lines
9.1 KiB
Text

package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_defaults {
name: "libbatterymonitor_defaults",
srcs: ["BatteryMonitor.cpp"],
cflags: ["-Wall", "-Werror"],
vendor_available: true,
recovery_available: true,
export_include_dirs: ["include"],
shared_libs: [
"libutils",
"libbase",
// Need HealthInfo definition from headers of these shared
// libraries. Clients don't need to link to these.
"android.hardware.health@2.1",
],
header_libs: ["libhealthd_headers"],
export_header_lib_headers: ["libhealthd_headers"],
}
cc_defaults {
name: "libhealthd_charger_ui_defaults",
vendor_available: true,
export_include_dirs: [
"include",
"include_charger",
],
static_libs: [
"libcharger_sysprop",
"libhealthd_draw",
"libhealthloop",
"libminui",
],
shared_libs: [
"libbase",
"libcutils",
"liblog",
"libpng",
"libsuspend",
"libutils",
],
header_libs: [
"libhealthd_headers",
],
srcs: [
"healthd_mode_charger.cpp",
"AnimationParser.cpp",
],
target: {
vendor: {
exclude_static_libs: [
"libcharger_sysprop",
],
},
},
}
cc_library_headers {
name: "libhealthd_headers",
vendor_available: true,
recovery_available: true,
export_include_dirs: ["include"],
header_libs: ["libbatteryservice_headers"],
export_header_lib_headers: ["libbatteryservice_headers"],
}
cc_library_static {
name: "libbatterymonitor",
defaults: ["libbatterymonitor_defaults"],
static_libs: [
"android.hardware.health-V1-ndk",
],
whole_static_libs: [
// Need to translate HIDL to AIDL to support legacy APIs in
// BatteryMonitor.
"android.hardware.health-translate-ndk",
],
}
// TODO(b/251425963): remove when android.hardware.health is upgraded to V2.
cc_library_static {
name: "libbatterymonitor-V1",
defaults: ["libbatterymonitor_defaults"],
static_libs: [
"android.hardware.health-V1-ndk",
],
whole_static_libs: [
// Need to translate HIDL to AIDL to support legacy APIs in
// BatteryMonitor.
"android.hardware.health-translate-V1-ndk",
],
}
cc_defaults {
name: "android.hardware.health@2.0-service_defaults",
cflags: [
"-Wall",
"-Werror",
],
static_libs: [
"android.hardware.health@2.0-impl",
"android.hardware.health@1.0-convert",
"libhealthservice",
"libhealthstoragedefault",
"libbatterymonitor",
],
shared_libs: [
"libbase",
"libcutils",
"libhidlbase",
"liblog",
"libutils",
"android.hardware.health@2.0",
],
}
cc_binary {
name: "android.hardware.health@2.0-service",
defaults: ["android.hardware.health@2.0-service_defaults"],
vendor: true,
relative_install_path: "hw",
init_rc: ["android.hardware.health@2.0-service.rc"],
srcs: [
"HealthServiceDefault.cpp",
],
}
cc_library_static {
name: "libhealthd_charger_nops",
recovery_available: true,
srcs: [
"healthd_mode_charger_nops.cpp",
],
cflags: [
"-Wall",
"-Werror",
],
header_libs: [
"libhealthd_headers",
],
static_libs: [
"libhealthloop",
"libhealth2impl",
],
shared_libs: [
"android.hardware.health@2.1",
"libutils",
],
}
sysprop_library {
name: "charger_sysprop",
recovery_available: true,
srcs: ["charger.sysprop"],
property_owner: "Platform",
api_packages: ["android.sysprop"],
}
cc_library_static {
name: "libhealthd_draw",
vendor_available: true,
export_include_dirs: ["."],
static_libs: [
"libcharger_sysprop",
"libminui",
],
shared_libs: [
"libbase",
],
header_libs: ["libbatteryservice_headers"],
srcs: ["healthd_draw.cpp"],
target: {
vendor: {
exclude_static_libs: [
"libcharger_sysprop",
],
},
},
}
cc_library_static {
name: "libhealthd_charger_ui",
defaults: ["libhealthd_charger_ui_defaults"],
static_libs: [
"android.hardware.health-V1-ndk",
"android.hardware.health-translate-ndk",
],
export_static_lib_headers: [
"android.hardware.health-V1-ndk",
],
}
// TODO(b/251425963): remove when android.hardware.health is upgraded to V2.
cc_library_static {
name: "libhealthd_charger_ui-V1",
defaults: ["libhealthd_charger_ui_defaults"],
static_libs: [
"android.hardware.health-V1-ndk",
"android.hardware.health-translate-V1-ndk",
],
export_static_lib_headers: [
"android.hardware.health-V1-ndk",
],
}
cc_library_static {
name: "libhealthd_charger",
export_include_dirs: [
"include",
"include_charger",
],
static_libs: [
"android.hardware.health@1.0-convert",
"libcharger_sysprop",
"libhealth2impl",
"libhealthd_charger_ui",
],
shared_libs: [
"android.hardware.health@2.1",
"libbase",
"libcutils",
"liblog",
"libutils",
],
srcs: [
"healthd_mode_charger_hidl.cpp",
],
}
cc_defaults {
name: "charger_defaults",
local_include_dirs: [
"include_charger",
],
cflags: [
"-Wall",
"-Werror",
],
shared_libs: [
// common
"libbase",
"libcutils",
"libhidlbase",
"liblog",
"libutils",
// system charger only
"libpng",
],
static_libs: [
// common
"android.hardware.health@1.0-convert",
"android.hardware.health-V1-ndk",
"libbatterymonitor",
"libcharger_sysprop",
"libhealthd_charger_nops",
"libhealthloop",
"libhealth2impl",
// system charger only
"libhealthd_draw",
"libhealthd_charger",
"libhealthd_charger_ui",
"libminui",
"libsuspend",
],
}
cc_binary {
name: "charger",
defaults: ["charger_defaults"],
recovery_available: true,
srcs: [
"charger.cpp",
"charger_utils.cpp",
],
shared_libs: [
"android.hardware.health@2.0",
"android.hardware.health@2.1",
],
target: {
recovery: {
// No UI and libsuspend for recovery charger.
cflags: [
"-DCHARGER_FORCE_NO_UI=1",
],
exclude_shared_libs: [
"libpng",
],
exclude_static_libs: [
"libhealthd_draw",
"libhealthd_charger",
"libhealthd_charger_ui",
"libminui",
"libsuspend",
],
}
}
}
cc_test {
name: "charger_test",
defaults: ["charger_defaults"],
srcs: ["charger_test.cpp"],
static_libs: [
"android.hardware.health@1.0",
"android.hardware.health@2.0",
"android.hardware.health@2.1",
],
}
cc_test {
name: "libhealthd_charger_test",
defaults: ["charger_defaults"],
srcs: [
"AnimationParser_test.cpp",
"healthd_mode_charger_test.cpp"
],
static_libs: [
"android.hardware.health@1.0",
"android.hardware.health@2.0",
"android.hardware.health@2.1",
"libgmock",
],
test_suites: [
"general-tests",
"device-tests",
],
data: [
":libhealthd_charger_test_data",
],
require_root: true,
}
// /system/etc/res/images/charger/battery_fail.png
prebuilt_etc {
name: "system_core_charger_res_images_battery_fail.png",
src: "images/battery_fail.png",
relative_install_path: "res/images/charger",
filename: "battery_fail.png",
}
// /system/etc/res/images/charger/battery_scale.png
prebuilt_etc {
name: "system_core_charger_res_images_battery_scale.png",
src: "images/battery_scale.png",
relative_install_path: "res/images/charger",
filename: "battery_scale.png",
}
phony {
name: "charger_res_images",
required: [
"system_core_charger_res_images_battery_fail.png",
"system_core_charger_res_images_battery_scale.png",
],
}
// /vendor/etc/res/images/default/charger/battery_fail.png
prebuilt_etc {
name: "system_core_charger_res_images_battery_fail.png_default_vendor",
src: "images/battery_fail.png",
relative_install_path: "res/images/default/charger",
vendor: true,
filename: "battery_fail.png",
}
// /vendor/etc/res/images/default/charger/battery_scale.png
prebuilt_etc {
name: "system_core_charger_res_images_battery_scale.png_default_vendor",
src: "images/battery_scale.png",
relative_install_path: "res/images/default/charger",
vendor: true,
filename: "battery_scale.png",
}
phony {
name: "charger_res_images_vendor",
required: [
"system_core_charger_res_images_battery_fail.png_default_vendor",
"system_core_charger_res_images_battery_scale.png_default_vendor",
],
}