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