blob: d1b18ef493abb220dd268a152dee2dec8eac6a76 [file] [log] [blame]
// Common variables
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "system_bt_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["system_bt_license"],
}
btifCommonIncludes = [
"packages/modules/Bluetooth/system",
"packages/modules/Bluetooth/system/bta/dm",
"packages/modules/Bluetooth/system/bta/include",
"packages/modules/Bluetooth/system/bta/sys",
"packages/modules/Bluetooth/system/btif/avrcp",
"packages/modules/Bluetooth/system/btif/co",
"packages/modules/Bluetooth/system/btif/include",
"packages/modules/Bluetooth/system/device/include",
"packages/modules/Bluetooth/system/embdrv/sbc/decoder/include",
"packages/modules/Bluetooth/system/embdrv/sbc/encoder/include",
"packages/modules/Bluetooth/system/gd",
"packages/modules/Bluetooth/system/include",
"packages/modules/Bluetooth/system/internal_include",
"packages/modules/Bluetooth/system/stack/a2dp",
"packages/modules/Bluetooth/system/stack/avdt",
"packages/modules/Bluetooth/system/stack/btm",
"packages/modules/Bluetooth/system/stack/include",
"packages/modules/Bluetooth/system/stack/l2cap",
"packages/modules/Bluetooth/system/udrv/include",
"system/libhwbinder/include",
]
cc_library {
name: "libstatslog_bt",
defaults: ["bluetooth_cflags"],
host_supported: true,
generated_sources: ["statslog_bt.cpp"],
generated_headers: ["statslog_bt.h"],
export_generated_headers: ["statslog_bt.h"],
apex_available: [
"com.android.btservices",
],
min_sdk_version: "30",
target: {
android: {
shared_libs: [
"libstatssocket",
],
export_shared_lib_headers: [
"libstatssocket",
],
},
host: {
static_libs: [
"libbase",
"libstatssocket",
],
export_static_lib_headers: [
"libstatssocket",
],
},
darwin: {
enabled: false,
},
},
}
genrule {
name: "statslog_bt.h",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_bt.h --module bluetooth" +
" --namespace bluetooth",
out: ["statslog_bt.h"],
}
genrule {
name: "statslog_bt.cpp",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_bt.cpp --module bluetooth" +
" --namespace bluetooth --importHeader statslog_bt.h",
out: ["statslog_bt.cpp"],
}
// libbtif static library for target
cc_library_static {
name: "libbtif",
defaults: ["fluoride_defaults"],
include_dirs: btifCommonIncludes,
srcs: [
// AVRCP Target Service
"avrcp/avrcp_service.cc",
// Callouts
"co/bta_av_co.cc",
"co/bta_hh_co.cc",
"co/bta_pan_co.cc",
// HAL layer
"src/bluetooth.cc",
// BTIF implementation
"src/btif_a2dp.cc",
"src/btif_a2dp_control.cc",
"src/btif_a2dp_sink.cc",
"src/btif_a2dp_source.cc",
"src/btif_av.cc",
"src/btif_csis_client.cc",
"src/btif_has_client.cc",
"src/btif_hd.cc",
"src/btif_hearing_aid.cc",
"src/btif_hf.cc",
"src/btif_hf_client.cc",
"src/btif_hh.cc",
"src/btif_iot_config.cc",
"src/btif_le_audio.cc",
"src/btif_le_audio_broadcaster.cc",
"src/btif_pan.cc",
"src/btif_profile_queue.cc",
"src/btif_profile_storage.cc",
"src/btif_rc.cc",
"src/btif_vc.cc",
"src/profile_log_levels.cc",
],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
local_include_dirs: [
"include",
],
target: {
android: {
whole_static_libs: [
"libPlatformProperties",
],
srcs: ["src/btif_avrcp_audio_track.cc"],
shared_libs: ["libaaudio"],
},
host: {
srcs: [
"src/btif_avrcp_audio_track_linux.cc",
"src/btif_leaudio_hal_version_host.cc",
],
},
},
static_libs: [
"avrcp-target-service",
"lib-bt-packets",
"lib-bt-packets-avrcp",
"lib-bt-packets-base",
"libaudio-a2dp-hw-utils",
"libbluetooth-types",
"libbt-audio-hal-interface",
"libbt-platform-protos-lite",
"libbt-stack",
"libbt-stack-core",
"libbt_shim_bridge",
"libbtif-core",
],
shared_libs: [
"android.hardware.bluetooth.audio@2.1",
],
cflags: [
"-DBUILDCFG",
],
apex_available: [
"com.android.btservices",
],
host_supported: true,
min_sdk_version: "Tiramisu",
}
cc_library_static {
name: "libbtif-core",
defaults: ["fluoride_defaults"],
include_dirs: btifCommonIncludes,
srcs: [
// Callouts
"co/bta_dm_co.cc",
"co/bta_gatts_co.cc",
// BTIF implementation
"src/btif_ble_scanner.cc",
"src/btif_bqr.cc",
"src/btif_config.cc",
"src/btif_config_cache.cc",
"src/btif_core.cc",
"src/btif_debug_conn.cc",
"src/btif_dm.cc",
"src/btif_gatt.cc",
"src/btif_gatt_client.cc",
"src/btif_gatt_server.cc",
"src/btif_gatt_test.cc",
"src/btif_gatt_util.cc",
"src/btif_iot_config.cc",
"src/btif_keystore.cc",
"src/btif_metrics_logging.cc",
"src/btif_profile_queue.cc",
"src/btif_sdp.cc",
"src/btif_sdp_server.cc",
"src/btif_sock.cc",
"src/btif_sock_l2cap.cc",
"src/btif_sock_rfc.cc",
"src/btif_sock_sco.cc",
"src/btif_sock_sdp.cc",
"src/btif_sock_thread.cc",
"src/btif_sock_util.cc",
"src/btif_storage.cc",
"src/btif_uid.cc",
"src/btif_util.cc",
"src/stack_manager.cc",
],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
target: {
android: {
srcs: ["src/btif_avrcp_audio_track.cc"],
shared_libs: ["libaaudio"],
},
host: {
srcs: [
"src/btif_avrcp_audio_track_linux.cc",
"src/btif_leaudio_hal_version_host.cc",
],
},
},
static_libs: [
"lib-bt-packets",
"lib-bt-packets-base",
"libaudio-a2dp-hw-utils",
"libbt-audio-hal-interface",
"libbt-platform-protos-lite",
"libbt-stack-core",
"libbt_shim_bridge",
"libstatslog_bt",
],
shared_libs: [
"libcrypto",
],
cflags: [
/* we export all classes, so change default visibility, instead of having EXPORT_SYMBOL on each class*/
"-DBUILDCFG",
"-fvisibility=default",
],
apex_available: [
"com.android.btservices",
],
host_supported: true,
min_sdk_version: "Tiramisu",
header_libs: ["libbluetooth_headers"],
}
// btif unit tests for target
cc_test {
name: "net_test_btif",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: btifCommonIncludes,
srcs: [
"test/btif_storage_test.cc",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"android.hardware.bluetooth.audio@2.0",
"android.hardware.bluetooth.audio@2.1",
"libaaudio",
"libbinder_ndk",
"libcrypto",
"libcutils",
"libfmq",
"libhidlbase",
"liblog",
"libstatssocket",
"libutils",
],
static_libs: [
"android.hardware.audio.common-V2-ndk",
"android.hardware.bluetooth.a2dp@1.0",
"android.hardware.bluetooth.audio-V3-ndk",
"android.hardware.bluetooth@1.0",
"android.hardware.bluetooth@1.1",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"android.media.audio.common.types-V2-ndk",
"android.system.suspend.control-V1-ndk",
"libFraunhoferAAC",
"libbluetooth-types",
"libbluetooth_core_rs",
"libbt-audio-hal-interface",
"libbt-bta",
"libbt-bta-core",
"libbt-common",
"libbt-hci",
"libbt-sbc-decoder",
"libbt-sbc-encoder",
"libbt-stack",
"libbt-stack-core",
"libbt_shim_bridge",
"libbtcore",
"libbtdevice",
"libbtif",
"libbtif-core",
"libchrome",
"libg722codec",
"liblc3",
"libopus",
"libosi",
"libprotobuf-cpp-lite",
"libstatslog_bt",
"libudrv-uipc",
],
whole_static_libs: [
"libbluetooth-dumpsys",
"libbluetooth-for-tests",
],
target: {
android: {
shared_libs: [
"libPlatformProperties",
"libbinder_ndk",
],
},
},
cflags: ["-DBUILDCFG"],
sanitize: {
integer_overflow: true,
},
}
// btif profile queue unit tests for target
cc_test {
name: "net_test_btif_profile_queue",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: btifCommonIncludes,
srcs: [
"src/btif_profile_queue.cc",
"test/btif_profile_queue_test.cc",
],
header_libs: ["libbluetooth_headers"],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
static_libs: [
"libbluetooth-types",
"libbluetooth_gd",
"libbt_shim_bridge",
"libbt_shim_ffi",
"libchrome",
"libosi",
],
cflags: ["-DBUILDCFG"],
shared_libs: ["liblog"],
}
// btif avrcp audio track unit tests
cc_test {
name: "net_test_btif_avrcp_audio_track",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: btifCommonIncludes + [
"frameworks/av/media/libaaudio/include",
],
srcs: [
":TestCommonMockFunctions",
":TestMockFrameworks",
"src/btif_avrcp_audio_track.cc",
"test/btif_avrcp_audio_track_test.cc",
],
header_libs: ["libbluetooth_headers"],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
static_libs: [
"libbluetooth-types",
"libbt_shim_bridge",
"libbt_shim_ffi",
"libchrome",
"libosi",
],
cflags: ["-DBUILDCFG"],
shared_libs: ["liblog"],
}
// btif rc unit tests for target
cc_test {
name: "net_test_btif_rc",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
include_dirs: btifCommonIncludes,
srcs: [
":TestCommonLogMsg",
":TestCommonMockFunctions",
":TestMockCommon",
":TestMockOsi",
"test/btif_rc_test.cc",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"libcrypto",
"libcutils",
"liblog",
],
static_libs: [
"libbluetooth-types",
"libbluetooth_gd",
"libbt-common",
"libbt-platform-protos-lite",
"libbt_shim_bridge",
"libbt_shim_ffi",
"libchrome",
"libevent",
],
target: {
android: {
shared_libs: ["libstatssocket"],
},
},
cflags: ["-DBUILDCFG"],
sanitize: {
address: true,
cfi: true,
misc_undefined: ["bounds"],
},
}
// btif config cache unit tests for target
cc_test {
name: "net_test_btif_config_cache",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
host_supported: true,
test_options: {
unit_test: true,
},
include_dirs: btifCommonIncludes,
srcs: [
"src/btif_config_cache.cc",
"test/btif_config_cache_test.cc",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"libbinder_ndk",
"libcrypto",
"libcutils",
"liblog",
],
static_libs: [
"libbluetooth-types",
"libbt_shim_bridge",
"libc++fs",
"libchrome",
"libgmock",
"libosi",
],
cflags: ["-DBUILDCFG"],
target: {
android: {
static_libs: [
"android.system.suspend.control-V1-ndk",
],
},
},
}
// btif hf client service tests for target
cc_test {
name: "net_test_btif_hf_client_service",
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: btifCommonIncludes,
srcs: [
":TestCommonLogMsg",
"test/btif_hf_client_service_test.cc",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"libcutils",
"liblog",
],
static_libs: [
"libbluetooth-types",
"libbt_shim_bridge",
"libchrome",
"libcom.android.sysprop.bluetooth",
"libosi",
],
cflags: ["-DBUILDCFG"],
}
cc_test {
name: "net_test_btif_hh",
host_supported: true,
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: [
"frameworks/av/media/libaaudio/include",
"packages/modules/Bluetooth/system",
"packages/modules/Bluetooth/system/bta/dm",
"packages/modules/Bluetooth/system/bta/include",
"packages/modules/Bluetooth/system/bta/sys",
"packages/modules/Bluetooth/system/btif/avrcp",
"packages/modules/Bluetooth/system/btif/co",
"packages/modules/Bluetooth/system/btif/include",
"packages/modules/Bluetooth/system/device/include",
"packages/modules/Bluetooth/system/embdrv/sbc/decoder/include",
"packages/modules/Bluetooth/system/embdrv/sbc/encoder/include",
"packages/modules/Bluetooth/system/gd",
"packages/modules/Bluetooth/system/include",
"packages/modules/Bluetooth/system/internal_include",
"packages/modules/Bluetooth/system/stack/a2dp",
"packages/modules/Bluetooth/system/stack/avdt",
"packages/modules/Bluetooth/system/stack/btm",
"packages/modules/Bluetooth/system/stack/include",
"packages/modules/Bluetooth/system/stack/l2cap",
"packages/modules/Bluetooth/system/udrv/include",
"system/libfmq/include",
"system/libhwbinder/include",
],
srcs: [
":BtaDmSources",
":LibBluetoothSources",
":TestCommonCoreInterface",
":TestCommonMainHandler",
":TestCommonMockFunctions",
":TestMockAndroidHardware",
":TestMockBtaAg",
":TestMockBtaAr",
":TestMockBtaAv",
":TestMockBtaCsis",
":TestMockBtaGatt",
":TestMockBtaGroups",
":TestMockBtaHas",
":TestMockBtaHd",
":TestMockBtaHearingAid",
":TestMockBtaHf",
":TestMockBtaHh",
":TestMockBtaJv",
":TestMockBtaLeAudio",
":TestMockBtaLeAudioHalVerifier",
":TestMockBtaPan",
":TestMockBtaSdp",
":TestMockBtaSys",
":TestMockBtaVc",
":TestMockBtcore",
":TestMockBtu",
":TestMockCommon",
":TestMockFrameworks",
":TestMockHci",
":TestMockMainShim",
":TestMockOsi",
":TestMockStack",
":TestMockSystemLibfmq",
":TestMockUdrv",
":TestMockUtils",
"test/btif_hh_test.cc",
],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"android.hardware.bluetooth.audio@2.0",
"android.hardware.bluetooth.audio@2.1",
"libcrypto",
"libcutils",
"libhidlbase",
"liblog",
"libutils",
],
static_libs: [
"android.hardware.bluetooth.a2dp@1.0",
"avrcp-target-service",
"lib-bt-packets",
"lib-bt-packets-avrcp",
"lib-bt-packets-base",
"libaudio-a2dp-hw-utils",
"libbluetooth-types",
"libbluetooth_gd",
"libbt-audio-hal-interface",
"libbt-platform-protos-lite",
"libbt-sbc-decoder",
"libbt-sbc-encoder",
"libbt-stack",
"libbt-stack-core",
"libbt_shim_bridge",
"libbt_shim_ffi",
"libbtdevice",
"libbtif",
"libbtif-core",
"libc++fs",
"libchrome",
"libcom.android.sysprop.bluetooth",
"libevent",
"libgmock",
"libstatslog_bt",
],
cflags: ["-DBUILDCFG"],
target: {
android: {
static_libs: [
"android.hardware.audio.common-V2-ndk",
"android.hardware.bluetooth.audio-V3-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"android.media.audio.common.types-V2-ndk",
],
shared_libs: [
"libbinder_ndk",
"libstatssocket",
],
},
},
sanitize: {
address: true,
cfi: true,
misc_undefined: ["bounds"],
},
}
// Cycle stack test
cc_test {
name: "net_test_btif_stack",
host_supported: true,
defaults: [
"bluetooth_gtest_x86_asan_workaround",
"fluoride_defaults",
"mts_defaults",
],
test_suites: ["device-tests"],
include_dirs: [
"frameworks/av/media/libaaudio/include",
"packages/modules/Bluetooth/system",
"packages/modules/Bluetooth/system/bta/dm",
"packages/modules/Bluetooth/system/bta/include",
"packages/modules/Bluetooth/system/bta/sys",
"packages/modules/Bluetooth/system/btif/avrcp",
"packages/modules/Bluetooth/system/btif/co",
"packages/modules/Bluetooth/system/btif/include",
"packages/modules/Bluetooth/system/device/include",
"packages/modules/Bluetooth/system/embdrv/sbc/decoder/include",
"packages/modules/Bluetooth/system/embdrv/sbc/encoder/include",
"packages/modules/Bluetooth/system/gd",
"packages/modules/Bluetooth/system/include",
"packages/modules/Bluetooth/system/internal_include",
"packages/modules/Bluetooth/system/stack/a2dp",
"packages/modules/Bluetooth/system/stack/avdt",
"packages/modules/Bluetooth/system/stack/btm",
"packages/modules/Bluetooth/system/stack/include",
"packages/modules/Bluetooth/system/stack/l2cap",
"packages/modules/Bluetooth/system/udrv/include",
"system/libfmq/include",
"system/libhwbinder/include",
],
srcs: [
":BtaDmSources",
":LibBluetoothSources",
":OsiCompatSources",
":TestCommonCoreInterface",
":TestCommonMainHandler",
":TestCommonMockFunctions",
":TestMockAndroidHardware",
":TestMockBtaAg",
":TestMockBtaAr",
":TestMockBtaAv",
":TestMockBtaCsis",
":TestMockBtaGatt",
":TestMockBtaGroups",
":TestMockBtaHas",
":TestMockBtaHd",
":TestMockBtaHearingAid",
":TestMockBtaHf",
":TestMockBtaHh",
":TestMockBtaJv",
":TestMockBtaLeAudio",
":TestMockBtaLeAudioHalVerifier",
":TestMockBtaPan",
":TestMockBtaSdp",
":TestMockBtaSys",
":TestMockBtaVc",
":TestMockBtcore",
":TestMockBtu",
":TestMockCommon",
":TestMockFrameworks",
":TestMockHci",
":TestMockMainShim",
":TestMockOsi",
":TestMockStack",
":TestMockSystemLibfmq",
":TestMockUdrv",
":TestMockUtils",
"test/btif_core_test.cc",
],
generated_headers: [
"BluetoothGeneratedDumpsysDataSchema_h",
"BluetoothGeneratedPackets_h",
],
header_libs: ["libbluetooth_headers"],
shared_libs: [
"android.hardware.bluetooth.audio@2.0",
"android.hardware.bluetooth.audio@2.1",
"libcrypto",
"libcutils",
"libhidlbase",
"liblog",
"libutils",
],
static_libs: [
"android.hardware.bluetooth.a2dp@1.0",
"avrcp-target-service",
"lib-bt-packets",
"lib-bt-packets-avrcp",
"lib-bt-packets-base",
"libaudio-a2dp-hw-utils",
"libbluetooth-types",
"libbluetooth_gd",
"libbt-audio-hal-interface",
"libbt-platform-protos-lite",
"libbt-sbc-decoder",
"libbt-sbc-encoder",
"libbt_shim_bridge",
"libbt_shim_ffi",
"libbtdevice",
"libbtif",
"libbtif-core",
"libc++fs",
"libchrome",
"libcom.android.sysprop.bluetooth",
"libevent",
"libgmock",
"libstatslog_bt",
],
cflags: ["-DBUILDCFG"],
target: {
android: {
static_libs: [
"android.hardware.audio.common-V2-ndk",
"android.hardware.bluetooth.audio-V3-ndk",
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"android.media.audio.common.types-V2-ndk",
],
shared_libs: [
"libbinder_ndk",
"libstatssocket",
],
},
},
sanitize: {
address: true,
cfi: true,
misc_undefined: ["bounds"],
},
}