1# Copyright 2024 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") 16 17package(default_visibility = ["//visibility:public"]) 18 19licenses(["notice"]) 20 21cc_library( 22 name = "pw_bluetooth_proxy", 23 srcs = [ 24 "acl_data_channel.cc", 25 "basic_l2cap_channel.cc", 26 "gatt_notify_channel.cc", 27 "h4_storage.cc", 28 "l2cap_aclu_signaling_channel.cc", 29 "l2cap_channel_manager.cc", 30 "l2cap_coc.cc", 31 "l2cap_leu_signaling_channel.cc", 32 "l2cap_read_channel.cc", 33 "l2cap_signaling_channel.cc", 34 "l2cap_write_channel.cc", 35 "proxy_host.cc", 36 "rfcomm_channel.cc", 37 "rfcomm_fcs.cc", 38 ], 39 hdrs = [ 40 "public/pw_bluetooth_proxy/basic_l2cap_channel.h", 41 "public/pw_bluetooth_proxy/gatt_notify_channel.h", 42 "public/pw_bluetooth_proxy/h4_packet.h", 43 "public/pw_bluetooth_proxy/internal/acl_data_channel.h", 44 "public/pw_bluetooth_proxy/internal/gatt_notify_channel_internal.h", 45 "public/pw_bluetooth_proxy/internal/h4_storage.h", 46 "public/pw_bluetooth_proxy/internal/hci_transport.h", 47 "public/pw_bluetooth_proxy/internal/l2cap_aclu_signaling_channel.h", 48 "public/pw_bluetooth_proxy/internal/l2cap_channel_manager.h", 49 "public/pw_bluetooth_proxy/internal/l2cap_coc_internal.h", 50 "public/pw_bluetooth_proxy/internal/l2cap_leu_signaling_channel.h", 51 "public/pw_bluetooth_proxy/internal/l2cap_read_channel.h", 52 "public/pw_bluetooth_proxy/internal/l2cap_signaling_channel.h", 53 "public/pw_bluetooth_proxy/internal/l2cap_write_channel.h", 54 "public/pw_bluetooth_proxy/internal/logical_transport.h", 55 "public/pw_bluetooth_proxy/internal/rfcomm_fcs.h", 56 "public/pw_bluetooth_proxy/l2cap_coc.h", 57 "public/pw_bluetooth_proxy/proxy_host.h", 58 "public/pw_bluetooth_proxy/rfcomm_channel.h", 59 ], 60 strip_include_prefix = "public", 61 deps = [ 62 "//pw_bluetooth:emboss_att", 63 "//pw_bluetooth:emboss_hci_common", 64 "//pw_bluetooth:emboss_hci_data", 65 "//pw_bluetooth:emboss_hci_events", 66 "//pw_bluetooth:emboss_hci_h4", 67 "//pw_bluetooth:emboss_l2cap_frames", 68 "//pw_bluetooth:emboss_rfcomm_frames", 69 "//pw_bluetooth:emboss_util", 70 "//pw_containers", 71 "//pw_function", 72 "//pw_log", 73 "//pw_result", 74 "//pw_span", 75 "//pw_status", 76 "//pw_sync:lock_annotations", 77 "//pw_sync:mutex", 78 ], 79) 80 81pw_cc_test( 82 name = "pw_bluetooth_proxy_test", 83 srcs = [ 84 "h4_packet_test.cc", 85 "proxy_host_test.cc", 86 "rfcomm_fcs_test.cc", 87 ], 88 deps = [ 89 ":pw_bluetooth_proxy", 90 "//pw_bluetooth:emboss_att", 91 "//pw_bluetooth:emboss_hci_commands", 92 "//pw_bluetooth:emboss_hci_common", 93 "//pw_bluetooth:emboss_hci_events", 94 "//pw_bluetooth:emboss_hci_h4", 95 "//pw_bluetooth:emboss_util", 96 ], 97) 98 99filegroup( 100 name = "doxygen", 101 srcs = [ 102 "public/pw_bluetooth_proxy/h4_packet.h", 103 "public/pw_bluetooth_proxy/proxy_host.h", 104 ], 105) 106