blob: b788868c0e42fe099202d6f2a3289511dd53f833 [file] [log] [blame]
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
// SPDX-license-identifier-BSD
// SPDX-license-identifier-MIT
// legacy_unencumbered
default_applicable_licenses: ["system_bt_license"],
}
filegroup {
name: "BlueberryFacadeProto",
srcs: [
"blueberry/facade/common.proto",
"blueberry/facade/hal/hal_facade.proto",
"blueberry/facade/hci/acl_manager_facade.proto",
"blueberry/facade/hci/controller_facade.proto",
"blueberry/facade/hci/hci_facade.proto",
"blueberry/facade/hci/le_acl_manager_facade.proto",
"blueberry/facade/hci/le_advertising_manager_facade.proto",
"blueberry/facade/hci/le_initiator_address_facade.proto",
"blueberry/facade/hci/le_scanning_manager_facade.proto",
"blueberry/facade/l2cap/classic/facade.proto",
"blueberry/facade/l2cap/le/facade.proto",
"blueberry/facade/neighbor/facade.proto",
"blueberry/facade/rootservice.proto",
"blueberry/facade/topshim/facade.proto",
],
}
filegroup {
name: "TestMockCodecManager",
srcs: [
"bta/le_audio/mock_codec_manager.cc",
],
}
genrule {
name: "BlueberryFacadeGeneratedStub_h",
tools: [
"aprotoc",
"protoc-gen-grpc-cpp-plugin",
],
cmd: "$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(locations :BlueberryFacadeProto) --grpc_out=$(genDir) --cpp_out=$(genDir)",
srcs: [
":BlueberryFacadeProto",
":libprotobuf-internal-protos",
],
out: [
"blueberry/facade/common.grpc.pb.h",
"blueberry/facade/common.pb.h",
"blueberry/facade/hal/hal_facade.grpc.pb.h",
"blueberry/facade/hal/hal_facade.pb.h",
"blueberry/facade/hci/acl_manager_facade.grpc.pb.h",
"blueberry/facade/hci/acl_manager_facade.pb.h",
"blueberry/facade/hci/controller_facade.grpc.pb.h",
"blueberry/facade/hci/controller_facade.pb.h",
"blueberry/facade/hci/hci_facade.grpc.pb.h",
"blueberry/facade/hci/hci_facade.pb.h",
"blueberry/facade/hci/le_acl_manager_facade.grpc.pb.h",
"blueberry/facade/hci/le_acl_manager_facade.pb.h",
"blueberry/facade/hci/le_advertising_manager_facade.grpc.pb.h",
"blueberry/facade/hci/le_advertising_manager_facade.pb.h",
"blueberry/facade/hci/le_initiator_address_facade.grpc.pb.h",
"blueberry/facade/hci/le_initiator_address_facade.pb.h",
"blueberry/facade/hci/le_scanning_manager_facade.grpc.pb.h",
"blueberry/facade/hci/le_scanning_manager_facade.pb.h",
"blueberry/facade/l2cap/classic/facade.grpc.pb.h",
"blueberry/facade/l2cap/classic/facade.pb.h",
"blueberry/facade/l2cap/le/facade.grpc.pb.h",
"blueberry/facade/l2cap/le/facade.pb.h",
"blueberry/facade/neighbor/facade.grpc.pb.h",
"blueberry/facade/neighbor/facade.pb.h",
"blueberry/facade/rootservice.grpc.pb.h",
"blueberry/facade/rootservice.pb.h",
],
}
genrule {
name: "BlueberryFacadeGeneratedStub_cc",
tools: [
"aprotoc",
"protoc-gen-grpc-cpp-plugin",
],
cmd: "$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(locations :BlueberryFacadeProto) --grpc_out=$(genDir) --cpp_out=$(genDir)",
srcs: [
":BlueberryFacadeProto",
":libprotobuf-internal-protos",
],
out: [
"blueberry/facade/common.grpc.pb.cc",
"blueberry/facade/common.pb.cc",
"blueberry/facade/hal/hal_facade.grpc.pb.cc",
"blueberry/facade/hal/hal_facade.pb.cc",
"blueberry/facade/hci/acl_manager_facade.grpc.pb.cc",
"blueberry/facade/hci/acl_manager_facade.pb.cc",
"blueberry/facade/hci/controller_facade.grpc.pb.cc",
"blueberry/facade/hci/controller_facade.pb.cc",
"blueberry/facade/hci/hci_facade.grpc.pb.cc",
"blueberry/facade/hci/hci_facade.pb.cc",
"blueberry/facade/hci/le_acl_manager_facade.grpc.pb.cc",
"blueberry/facade/hci/le_acl_manager_facade.pb.cc",
"blueberry/facade/hci/le_advertising_manager_facade.grpc.pb.cc",
"blueberry/facade/hci/le_advertising_manager_facade.pb.cc",
"blueberry/facade/hci/le_initiator_address_facade.grpc.pb.cc",
"blueberry/facade/hci/le_initiator_address_facade.pb.cc",
"blueberry/facade/hci/le_scanning_manager_facade.grpc.pb.cc",
"blueberry/facade/hci/le_scanning_manager_facade.pb.cc",
"blueberry/facade/l2cap/classic/facade.grpc.pb.cc",
"blueberry/facade/l2cap/classic/facade.pb.cc",
"blueberry/facade/l2cap/le/facade.grpc.pb.cc",
"blueberry/facade/l2cap/le/facade.pb.cc",
"blueberry/facade/neighbor/facade.grpc.pb.cc",
"blueberry/facade/neighbor/facade.pb.cc",
"blueberry/facade/rootservice.grpc.pb.cc",
"blueberry/facade/rootservice.pb.cc",
],
}
genrule {
name: "BlueberryFacadeAndCertGeneratedStub_py",
tools: [
"aprotoc",
"protoc-gen-grpc-python-plugin",
"soong_zip",
],
cmd: "mkdir -p $(genDir)/files && " +
"$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-python-plugin) $(locations :BlueberryFacadeProto) --grpc_out=$(genDir)/files --python_out=$(genDir)/files && " +
"for dir in `find $(genDir)/files -type d`; do touch $$dir/__init__.py; done &&" +
"$(location soong_zip) -C $(genDir)/files -D $(genDir)/files -o $(out)",
srcs: [
":BlueberryFacadeProto",
":libprotobuf-internal-protos",
],
out: ["blueberry_facade_generated_py.zip"],
}
rust_protobuf {
name: "libbt_topshim_facade_protobuf",
crate_name: "bt_topshim_facade_protobuf",
source_stem: "topshim_facade",
host_supported: true,
grpc_protos: ["blueberry/facade/topshim/facade.proto"],
}
// Export system headers for rules that can't simply use `include_dirs`
cc_library_headers {
name: "libbluetooth_system_headers",
visibility: [
"//packages/modules/Bluetooth/system:__subpackages__",
],
export_include_dirs: ["./"],
vendor_available: true,
host_supported: true,
apex_available: [
"//apex_available:platform",
"com.android.btservices",
],
min_sdk_version: "30",
}
genrule {
name: "bluetooth_cert_test_sources-zip",
tools: [
"soong_zip",
],
srcs: [
"blueberry/**/*.py",
"blueberry/**/*.yaml",
"setup.py",
],
out: ["bluetooth_cert_test_sources.zip"],
cmd: "echo $(in) > $(genDir)/file_list.txt && " +
"$(location soong_zip) -C packages/modules/Bluetooth/system -l $(genDir)/file_list.txt -o $(out)",
}
genrule {
name: "gd_hci_packets_python3_gen-zip",
tools: [
"soong_zip",
],
srcs: [
":gd_hci_packets_python3_gen",
],
out: ["gd_hci_packets_python3_gen.zip"],
cmd: "echo $(in) > $(genDir)/file_list.txt && " +
"$(location soong_zip) -j -l $(genDir)/file_list.txt -o $(out)",
}
genrule {
name: "gd_smp_packets_python3_gen-zip",
tools: [
"soong_zip",
],
srcs: [
":gd_smp_packets_python3_gen",
],
out: ["gd_smp_packets_python3_gen.zip"],
cmd: "echo $(in) > $(genDir)/file_list.txt && " +
"$(location soong_zip) -j -l $(genDir)/file_list.txt -o $(out)",
}
cc_genrule {
name: "bluetooth_cert_test_host_deps-zip",
host_supported: true,
device_supported: false,
compile_multilib: "first",
tools: [
"bluetooth_stack_with_facade",
"bt_topshim_facade",
"root-canal",
"soong_zip",
],
srcs: [
":libbase",
":libbinder",
":libbinder_ndk",
":libbluetooth",
":libbluetooth_gd",
":libc++",
":libchrome",
":libcrypto",
":libcutils",
":libevent",
":libflatbuffers-cpp",
":libgrpc++",
":libgrpc_wrap",
":liblog",
":liblzma",
":libprotobuf-cpp-full",
":libssl",
":libunwindstack",
":libutils",
":libz",
":server_configurable_flags",
],
out: ["bluetooth_cert_test_host_deps.zip"],
cmd: "echo $(in) > $(genDir)/file_list.txt && " +
"$(location soong_zip) -j -f $(location bluetooth_stack_with_facade) -f $(location bt_topshim_facade) -f $(location root-canal) -P lib64 -l $(genDir)/file_list.txt -o $(out)",
}
cc_genrule {
name: "bluetooth_cert_test_target_deps-zip",
compile_multilib: "first",
tools: [
"soong_zip",
],
srcs: [
// executables
":bluetooth_stack_with_facade",
// libs
":android.hardware.bluetooth@1.0",
":android.hardware.bluetooth@1.1",
":libandroid_runtime_lazy",
":libbase",
":libbinder",
":libbinder_ndk",
":libc++",
":libcrypto",
":libcutils",
":libgrpc++",
":libgrpc_wrap",
":libhidlbase",
":liblog",
":liblzma",
":libprotobuf-cpp-full",
":libssl",
":libunwindstack",
":libutils",
":libz",
":server_configurable_flags",
],
out: ["bluetooth_cert_test_target_deps.zip"],
cmd: "echo $(in) > $(genDir)/file_list.txt && " +
"$(location soong_zip) -j -P target -l $(genDir)/file_list.txt -o $(out)",
}
genrule {
name: "llvm-tools-zip",
tools: [
"soong_zip",
],
srcs: [
":llvm-tools",
],
out: ["llvm-tools.zip"],
cmd: "mkdir -p $(genDir)/llvm_binutils/bin && mkdir -p $(genDir)/llvm_binutils/lib/x86_64-unknown-linux-gnu && " +
"cp prebuilts/clang/host/linux-x86/*/bin/llvm-cov $(genDir)/llvm_binutils/bin && " +
"cp prebuilts/clang/host/linux-x86/*/bin/llvm-profdata $(genDir)/llvm_binutils/bin && " +
"cp prebuilts/clang/host/linux-x86/*/bin/llvm-symbolizer $(genDir)/llvm_binutils/bin && " +
"cp prebuilts/clang/host/linux-x86/*/lib/x86_64-unknown-linux-gnu/libc++.so $(genDir)/llvm_binutils/lib/x86_64-unknown-linux-gnu && " +
"$(location soong_zip) -C $(genDir) -D $(genDir)/llvm_binutils -o $(out)",
}
cc_genrule {
name: "bluetooth_cert_tests.zip",
host_supported: true,
device_supported: false,
compile_multilib: "first",
tools: [
"merge_zips",
"soong_zip",
],
srcs: [
":BlueberryFacadeAndCertGeneratedStub_py",
":bluetooth_cert_test_host_deps-zip",
":bluetooth_cert_test_sources-zip",
":bluetooth_cert_test_target_deps-zip",
":gd_hci_packets_python3_gen-zip",
":gd_smp_packets_python3_gen-zip",
":llvm-tools-zip",
],
out: ["bluetooth_cert_tests.zip"],
cmd: "$(location merge_zips) $(genDir)/temp.zip $(in) && " +
"unzip -q -d $(genDir)/files $(genDir)/temp.zip && " +
"for d in $$(find $(genDir)/files/blueberry -type d -name '*'); do touch -a $$d/__init__.py; done && " +
"$(location soong_zip) -C $(genDir)/files -D $(genDir)/files -o $(out)",
dist: {
targets: [
"bluetooth_stack_with_facade",
],
},
}