xref: /aosp_15_r20/external/pigweed/pw_bluetooth_sapphire/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2023 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 = ["//pw_bluetooth_sapphire:__subpackages__"])
18
19cc_library(
20    name = "config",
21    srcs = [],
22    defines = select({
23        "@platforms//os:fuchsia": [
24            "PW_BLUETOOTH_SAPPHIRE_INSPECT_ENABLED",
25            "PW_BLUETOOTH_SAPPHIRE_TRACE_ENABLED",
26        ],
27        "//conditions:default": [],
28    }),
29)
30
31cc_library(
32    name = "public",
33    hdrs = [
34        "public/pw_bluetooth_sapphire/config.h",
35        "public/pw_bluetooth_sapphire/internal/host/att/att.h",
36        "public/pw_bluetooth_sapphire/internal/host/att/attribute.h",
37        "public/pw_bluetooth_sapphire/internal/host/att/bearer.h",
38        "public/pw_bluetooth_sapphire/internal/host/att/database.h",
39        "public/pw_bluetooth_sapphire/internal/host/att/error.h",
40        "public/pw_bluetooth_sapphire/internal/host/att/packet.h",
41        "public/pw_bluetooth_sapphire/internal/host/att/permissions.h",
42        "public/pw_bluetooth_sapphire/internal/host/att/write_queue.h",
43        "public/pw_bluetooth_sapphire/internal/host/common/advertising_data.h",
44        "public/pw_bluetooth_sapphire/internal/host/common/assert.h",
45        "public/pw_bluetooth_sapphire/internal/host/common/bounded_inspect_list_node.h",
46        "public/pw_bluetooth_sapphire/internal/host/common/byte_buffer.h",
47        "public/pw_bluetooth_sapphire/internal/host/common/device_address.h",
48        "public/pw_bluetooth_sapphire/internal/host/common/device_class.h",
49        "public/pw_bluetooth_sapphire/internal/host/common/error.h",
50        "public/pw_bluetooth_sapphire/internal/host/common/expiring_set.h",
51        "public/pw_bluetooth_sapphire/internal/host/common/fake_inspect.h",
52        "public/pw_bluetooth_sapphire/internal/host/common/host_error.h",
53        "public/pw_bluetooth_sapphire/internal/host/common/identifier.h",
54        "public/pw_bluetooth_sapphire/internal/host/common/inspect.h",
55        "public/pw_bluetooth_sapphire/internal/host/common/inspectable.h",
56        "public/pw_bluetooth_sapphire/internal/host/common/log.h",
57        "public/pw_bluetooth_sapphire/internal/host/common/macros.h",
58        "public/pw_bluetooth_sapphire/internal/host/common/manufacturer_names.h",
59        "public/pw_bluetooth_sapphire/internal/host/common/metrics.h",
60        "public/pw_bluetooth_sapphire/internal/host/common/packet_view.h",
61        "public/pw_bluetooth_sapphire/internal/host/common/pipeline_monitor.h",
62        "public/pw_bluetooth_sapphire/internal/host/common/random.h",
63        "public/pw_bluetooth_sapphire/internal/host/common/retire_log.h",
64        "public/pw_bluetooth_sapphire/internal/host/common/slab_allocator.h",
65        "public/pw_bluetooth_sapphire/internal/host/common/slab_buffer.h",
66        "public/pw_bluetooth_sapphire/internal/host/common/smart_task.h",
67        "public/pw_bluetooth_sapphire/internal/host/common/supplement_data.h",
68        "public/pw_bluetooth_sapphire/internal/host/common/to_string.h",
69        "public/pw_bluetooth_sapphire/internal/host/common/trace.h",
70        "public/pw_bluetooth_sapphire/internal/host/common/uint128.h",
71        "public/pw_bluetooth_sapphire/internal/host/common/uint256.h",
72        "public/pw_bluetooth_sapphire/internal/host/common/uuid.h",
73        "public/pw_bluetooth_sapphire/internal/host/common/weak_self.h",
74        "public/pw_bluetooth_sapphire/internal/host/common/windowed_inspect_numeric_property.h",
75        "public/pw_bluetooth_sapphire/internal/host/gap/adapter.h",
76        "public/pw_bluetooth_sapphire/internal/host/gap/adapter_state.h",
77        "public/pw_bluetooth_sapphire/internal/host/gap/android_vendor_capabilities.h",
78        "public/pw_bluetooth_sapphire/internal/host/gap/bonding_data.h",
79        "public/pw_bluetooth_sapphire/internal/host/gap/bredr_connection.h",
80        "public/pw_bluetooth_sapphire/internal/host/gap/bredr_connection_manager.h",
81        "public/pw_bluetooth_sapphire/internal/host/gap/bredr_connection_request.h",
82        "public/pw_bluetooth_sapphire/internal/host/gap/bredr_discovery_manager.h",
83        "public/pw_bluetooth_sapphire/internal/host/gap/bredr_interrogator.h",
84        "public/pw_bluetooth_sapphire/internal/host/gap/discovery_filter.h",
85        "public/pw_bluetooth_sapphire/internal/host/gap/event_masks.h",
86        "public/pw_bluetooth_sapphire/internal/host/gap/fake_adapter.h",
87        "public/pw_bluetooth_sapphire/internal/host/gap/fake_pairing_delegate.h",
88        "public/pw_bluetooth_sapphire/internal/host/gap/gap.h",
89        "public/pw_bluetooth_sapphire/internal/host/gap/generic_access_client.h",
90        "public/pw_bluetooth_sapphire/internal/host/gap/identity_resolving_list.h",
91        "public/pw_bluetooth_sapphire/internal/host/gap/legacy_pairing_state.h",
92        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_address_manager.h",
93        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_advertising_manager.h",
94        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_connection.h",
95        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_connection_handle.h",
96        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_connection_manager.h",
97        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_connection_request.h",
98        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_connector.h",
99        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_discovery_manager.h",
100        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_interrogator.h",
101        "public/pw_bluetooth_sapphire/internal/host/gap/low_energy_state.h",
102        "public/pw_bluetooth_sapphire/internal/host/gap/pairing_delegate.h",
103        "public/pw_bluetooth_sapphire/internal/host/gap/pairing_state_manager.h",
104        "public/pw_bluetooth_sapphire/internal/host/gap/peer.h",
105        "public/pw_bluetooth_sapphire/internal/host/gap/peer_cache.h",
106        "public/pw_bluetooth_sapphire/internal/host/gap/peer_metrics.h",
107        "public/pw_bluetooth_sapphire/internal/host/gap/secure_simple_pairing_state.h",
108        "public/pw_bluetooth_sapphire/internal/host/gap/types.h",
109        "public/pw_bluetooth_sapphire/internal/host/gatt/client.h",
110        "public/pw_bluetooth_sapphire/internal/host/gatt/connection.h",
111        "public/pw_bluetooth_sapphire/internal/host/gatt/fake_client.h",
112        "public/pw_bluetooth_sapphire/internal/host/gatt/fake_layer.h",
113        "public/pw_bluetooth_sapphire/internal/host/gatt/gatt.h",
114        "public/pw_bluetooth_sapphire/internal/host/gatt/gatt_defs.h",
115        "public/pw_bluetooth_sapphire/internal/host/gatt/generic_attribute_service.h",
116        "public/pw_bluetooth_sapphire/internal/host/gatt/local_service_manager.h",
117        "public/pw_bluetooth_sapphire/internal/host/gatt/mock_server.h",
118        "public/pw_bluetooth_sapphire/internal/host/gatt/persisted_data.h",
119        "public/pw_bluetooth_sapphire/internal/host/gatt/remote_characteristic.h",
120        "public/pw_bluetooth_sapphire/internal/host/gatt/remote_service.h",
121        "public/pw_bluetooth_sapphire/internal/host/gatt/remote_service_manager.h",
122        "public/pw_bluetooth_sapphire/internal/host/gatt/server.h",
123        "public/pw_bluetooth_sapphire/internal/host/gatt/types.h",
124        "public/pw_bluetooth_sapphire/internal/host/hci-spec/constants.h",
125        "public/pw_bluetooth_sapphire/internal/host/hci-spec/defaults.h",
126        "public/pw_bluetooth_sapphire/internal/host/hci-spec/le_connection_parameters.h",
127        "public/pw_bluetooth_sapphire/internal/host/hci-spec/link_key.h",
128        "public/pw_bluetooth_sapphire/internal/host/hci-spec/lmp_feature_set.h",
129        "public/pw_bluetooth_sapphire/internal/host/hci-spec/protocol.h",
130        "public/pw_bluetooth_sapphire/internal/host/hci-spec/util.h",
131        "public/pw_bluetooth_sapphire/internal/host/hci-spec/vendor_protocol.h",
132        "public/pw_bluetooth_sapphire/internal/host/hci/acl_connection.h",
133        "public/pw_bluetooth_sapphire/internal/host/hci/advertising_handle_map.h",
134        "public/pw_bluetooth_sapphire/internal/host/hci/advertising_report_parser.h",
135        "public/pw_bluetooth_sapphire/internal/host/hci/android_extended_low_energy_advertiser.h",
136        "public/pw_bluetooth_sapphire/internal/host/hci/bredr_connection.h",
137        "public/pw_bluetooth_sapphire/internal/host/hci/bredr_connection_request.h",
138        "public/pw_bluetooth_sapphire/internal/host/hci/connection.h",
139        "public/pw_bluetooth_sapphire/internal/host/hci/extended_low_energy_advertiser.h",
140        "public/pw_bluetooth_sapphire/internal/host/hci/extended_low_energy_scanner.h",
141        "public/pw_bluetooth_sapphire/internal/host/hci/fake_bredr_connection.h",
142        "public/pw_bluetooth_sapphire/internal/host/hci/fake_local_address_delegate.h",
143        "public/pw_bluetooth_sapphire/internal/host/hci/fake_low_energy_connection.h",
144        "public/pw_bluetooth_sapphire/internal/host/hci/fake_sco_connection.h",
145        "public/pw_bluetooth_sapphire/internal/host/hci/legacy_low_energy_advertiser.h",
146        "public/pw_bluetooth_sapphire/internal/host/hci/legacy_low_energy_scanner.h",
147        "public/pw_bluetooth_sapphire/internal/host/hci/local_address_delegate.h",
148        "public/pw_bluetooth_sapphire/internal/host/hci/low_energy_advertiser.h",
149        "public/pw_bluetooth_sapphire/internal/host/hci/low_energy_connection.h",
150        "public/pw_bluetooth_sapphire/internal/host/hci/low_energy_connector.h",
151        "public/pw_bluetooth_sapphire/internal/host/hci/low_energy_scanner.h",
152        "public/pw_bluetooth_sapphire/internal/host/hci/sco_connection.h",
153        "public/pw_bluetooth_sapphire/internal/host/hci/sequential_command_runner.h",
154        "public/pw_bluetooth_sapphire/internal/host/iso/fake_iso_stream.h",
155        "public/pw_bluetooth_sapphire/internal/host/iso/iso_common.h",
156        "public/pw_bluetooth_sapphire/internal/host/iso/iso_inbound_packet_assembler.h",
157        "public/pw_bluetooth_sapphire/internal/host/iso/iso_stream.h",
158        "public/pw_bluetooth_sapphire/internal/host/iso/iso_stream_manager.h",
159        "public/pw_bluetooth_sapphire/internal/host/l2cap/a2dp_offload_manager.h",
160        "public/pw_bluetooth_sapphire/internal/host/l2cap/basic_mode_rx_engine.h",
161        "public/pw_bluetooth_sapphire/internal/host/l2cap/basic_mode_tx_engine.h",
162        "public/pw_bluetooth_sapphire/internal/host/l2cap/bredr_command_handler.h",
163        "public/pw_bluetooth_sapphire/internal/host/l2cap/bredr_dynamic_channel.h",
164        "public/pw_bluetooth_sapphire/internal/host/l2cap/bredr_signaling_channel.h",
165        "public/pw_bluetooth_sapphire/internal/host/l2cap/channel.h",
166        "public/pw_bluetooth_sapphire/internal/host/l2cap/channel_configuration.h",
167        "public/pw_bluetooth_sapphire/internal/host/l2cap/channel_manager.h",
168        "public/pw_bluetooth_sapphire/internal/host/l2cap/channel_manager_mock_controller_test_fixture.h",
169        "public/pw_bluetooth_sapphire/internal/host/l2cap/command_handler.h",
170        "public/pw_bluetooth_sapphire/internal/host/l2cap/credit_based_flow_control_rx_engine.h",
171        "public/pw_bluetooth_sapphire/internal/host/l2cap/credit_based_flow_control_tx_engine.h",
172        "public/pw_bluetooth_sapphire/internal/host/l2cap/dynamic_channel.h",
173        "public/pw_bluetooth_sapphire/internal/host/l2cap/dynamic_channel_registry.h",
174        "public/pw_bluetooth_sapphire/internal/host/l2cap/enhanced_retransmission_mode_engines.h",
175        "public/pw_bluetooth_sapphire/internal/host/l2cap/enhanced_retransmission_mode_rx_engine.h",
176        "public/pw_bluetooth_sapphire/internal/host/l2cap/enhanced_retransmission_mode_tx_engine.h",
177        "public/pw_bluetooth_sapphire/internal/host/l2cap/fake_channel.h",
178        "public/pw_bluetooth_sapphire/internal/host/l2cap/fake_channel_test.h",
179        "public/pw_bluetooth_sapphire/internal/host/l2cap/fake_l2cap.h",
180        "public/pw_bluetooth_sapphire/internal/host/l2cap/fake_signaling_channel.h",
181        "public/pw_bluetooth_sapphire/internal/host/l2cap/fake_tx_channel.h",
182        "public/pw_bluetooth_sapphire/internal/host/l2cap/fcs.h",
183        "public/pw_bluetooth_sapphire/internal/host/l2cap/fragmenter.h",
184        "public/pw_bluetooth_sapphire/internal/host/l2cap/frame_headers.h",
185        "public/pw_bluetooth_sapphire/internal/host/l2cap/l2cap_defs.h",
186        "public/pw_bluetooth_sapphire/internal/host/l2cap/le_dynamic_channel.h",
187        "public/pw_bluetooth_sapphire/internal/host/l2cap/le_signaling_channel.h",
188        "public/pw_bluetooth_sapphire/internal/host/l2cap/logical_link.h",
189        "public/pw_bluetooth_sapphire/internal/host/l2cap/low_energy_command_handler.h",
190        "public/pw_bluetooth_sapphire/internal/host/l2cap/mock_channel_test.h",
191        "public/pw_bluetooth_sapphire/internal/host/l2cap/pdu.h",
192        "public/pw_bluetooth_sapphire/internal/host/l2cap/recombiner.h",
193        "public/pw_bluetooth_sapphire/internal/host/l2cap/rx_engine.h",
194        "public/pw_bluetooth_sapphire/internal/host/l2cap/scoped_channel.h",
195        "public/pw_bluetooth_sapphire/internal/host/l2cap/signaling_channel.h",
196        "public/pw_bluetooth_sapphire/internal/host/l2cap/test_packets.h",
197        "public/pw_bluetooth_sapphire/internal/host/l2cap/tx_engine.h",
198        "public/pw_bluetooth_sapphire/internal/host/l2cap/types.h",
199        "public/pw_bluetooth_sapphire/internal/host/sco/sco.h",
200        "public/pw_bluetooth_sapphire/internal/host/sco/sco_connection.h",
201        "public/pw_bluetooth_sapphire/internal/host/sco/sco_connection_manager.h",
202        "public/pw_bluetooth_sapphire/internal/host/sdp/client.h",
203        "public/pw_bluetooth_sapphire/internal/host/sdp/data_element.h",
204        "public/pw_bluetooth_sapphire/internal/host/sdp/error.h",
205        "public/pw_bluetooth_sapphire/internal/host/sdp/pdu.h",
206        "public/pw_bluetooth_sapphire/internal/host/sdp/sdp.h",
207        "public/pw_bluetooth_sapphire/internal/host/sdp/server.h",
208        "public/pw_bluetooth_sapphire/internal/host/sdp/service_discoverer.h",
209        "public/pw_bluetooth_sapphire/internal/host/sdp/service_record.h",
210        "public/pw_bluetooth_sapphire/internal/host/sm/delegate.h",
211        "public/pw_bluetooth_sapphire/internal/host/sm/ecdh_key.h",
212        "public/pw_bluetooth_sapphire/internal/host/sm/error.h",
213        "public/pw_bluetooth_sapphire/internal/host/sm/fake_phase_listener.h",
214        "public/pw_bluetooth_sapphire/internal/host/sm/packet.h",
215        "public/pw_bluetooth_sapphire/internal/host/sm/pairing_channel.h",
216        "public/pw_bluetooth_sapphire/internal/host/sm/pairing_phase.h",
217        "public/pw_bluetooth_sapphire/internal/host/sm/phase_1.h",
218        "public/pw_bluetooth_sapphire/internal/host/sm/phase_2_legacy.h",
219        "public/pw_bluetooth_sapphire/internal/host/sm/phase_2_secure_connections.h",
220        "public/pw_bluetooth_sapphire/internal/host/sm/phase_3.h",
221        "public/pw_bluetooth_sapphire/internal/host/sm/sc_stage_1.h",
222        "public/pw_bluetooth_sapphire/internal/host/sm/sc_stage_1_just_works_numeric_comparison.h",
223        "public/pw_bluetooth_sapphire/internal/host/sm/sc_stage_1_passkey.h",
224        "public/pw_bluetooth_sapphire/internal/host/sm/security_manager.h",
225        "public/pw_bluetooth_sapphire/internal/host/sm/security_request_phase.h",
226        "public/pw_bluetooth_sapphire/internal/host/sm/smp.h",
227        "public/pw_bluetooth_sapphire/internal/host/sm/test_security_manager.h",
228        "public/pw_bluetooth_sapphire/internal/host/sm/types.h",
229        "public/pw_bluetooth_sapphire/internal/host/sm/util.h",
230        "public/pw_bluetooth_sapphire/internal/host/testing/controller_test.h",
231        "public/pw_bluetooth_sapphire/internal/host/testing/controller_test_double_base.h",
232        "public/pw_bluetooth_sapphire/internal/host/testing/fake_controller.h",
233        "public/pw_bluetooth_sapphire/internal/host/testing/fake_dynamic_channel.h",
234        "public/pw_bluetooth_sapphire/internal/host/testing/fake_gatt_server.h",
235        "public/pw_bluetooth_sapphire/internal/host/testing/fake_l2cap.h",
236        "public/pw_bluetooth_sapphire/internal/host/testing/fake_peer.h",
237        "public/pw_bluetooth_sapphire/internal/host/testing/fake_sdp_server.h",
238        "public/pw_bluetooth_sapphire/internal/host/testing/fake_signaling_server.h",
239        "public/pw_bluetooth_sapphire/internal/host/testing/inspect.h",
240        "public/pw_bluetooth_sapphire/internal/host/testing/inspect_util.h",
241        "public/pw_bluetooth_sapphire/internal/host/testing/loop_fixture.h",
242        "public/pw_bluetooth_sapphire/internal/host/testing/mock_controller.h",
243        "public/pw_bluetooth_sapphire/internal/host/testing/parse_args.h",
244        "public/pw_bluetooth_sapphire/internal/host/testing/test_helpers.h",
245        "public/pw_bluetooth_sapphire/internal/host/testing/test_packets.h",
246        "public/pw_bluetooth_sapphire/internal/host/transport/acl_data_channel.h",
247        "public/pw_bluetooth_sapphire/internal/host/transport/acl_data_packet.h",
248        "public/pw_bluetooth_sapphire/internal/host/transport/command_channel.h",
249        "public/pw_bluetooth_sapphire/internal/host/transport/control_packets.h",
250        "public/pw_bluetooth_sapphire/internal/host/transport/data_buffer_info.h",
251        "public/pw_bluetooth_sapphire/internal/host/transport/emboss_packet.h",
252        "public/pw_bluetooth_sapphire/internal/host/transport/error.h",
253        "public/pw_bluetooth_sapphire/internal/host/transport/fake_acl_connection.h",
254        "public/pw_bluetooth_sapphire/internal/host/transport/fake_sco_data_channel.h",
255        "public/pw_bluetooth_sapphire/internal/host/transport/iso_data_channel.h",
256        "public/pw_bluetooth_sapphire/internal/host/transport/link_type.h",
257        "public/pw_bluetooth_sapphire/internal/host/transport/mock_acl_data_channel.h",
258        "public/pw_bluetooth_sapphire/internal/host/transport/packet.h",
259        "public/pw_bluetooth_sapphire/internal/host/transport/sco_data_channel.h",
260        "public/pw_bluetooth_sapphire/internal/host/transport/sco_data_packet.h",
261        "public/pw_bluetooth_sapphire/internal/host/transport/slab_allocators.h",
262        "public/pw_bluetooth_sapphire/internal/host/transport/transport.h",
263    ],
264    strip_include_prefix = "public",
265    tags = ["manual"],
266)
267
268cc_library(
269    name = "peripheral",
270    srcs = ["peripheral.cc"],
271    hdrs = ["public/pw_bluetooth_sapphire/peripheral.h"],
272    includes = ["public"],
273    deps = [
274        "//pw_bluetooth:pw_bluetooth2",
275        "//pw_bluetooth_sapphire/host/gap",
276        "//pw_sync:mutex",
277    ],
278)
279
280pw_cc_test(
281    name = "peripheral_test",
282    srcs = ["peripheral_test.cc"],
283    deps = [
284        ":peripheral",
285        "//pw_async:fake_dispatcher",
286        "//pw_async2:pend_func_task",
287        "//pw_bluetooth_sapphire/host/gap:testing",
288    ],
289)
290