| # Copyright 2022 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| load("@com_google_emboss//:build_defs.bzl", "emboss_cc_library") |
| load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| licenses(["notice"]) |
| |
| cc_library( |
| name = "pw_bluetooth", |
| hdrs = [ |
| "public/pw_bluetooth/address.h", |
| "public/pw_bluetooth/assigned_uuids.h", |
| "public/pw_bluetooth/constants.h", |
| "public/pw_bluetooth/controller.h", |
| "public/pw_bluetooth/gatt/client.h", |
| "public/pw_bluetooth/gatt/constants.h", |
| "public/pw_bluetooth/gatt/error.h", |
| "public/pw_bluetooth/gatt/server.h", |
| "public/pw_bluetooth/gatt/types.h", |
| "public/pw_bluetooth/host.h", |
| "public/pw_bluetooth/internal/hex.h", |
| "public/pw_bluetooth/internal/raii_ptr.h", |
| "public/pw_bluetooth/low_energy/advertising_data.h", |
| "public/pw_bluetooth/low_energy/bond_data.h", |
| "public/pw_bluetooth/low_energy/central.h", |
| "public/pw_bluetooth/low_energy/connection.h", |
| "public/pw_bluetooth/low_energy/peripheral.h", |
| "public/pw_bluetooth/low_energy/security_mode.h", |
| "public/pw_bluetooth/pairing_delegate.h", |
| "public/pw_bluetooth/peer.h", |
| "public/pw_bluetooth/result.h", |
| "public/pw_bluetooth/types.h", |
| "public/pw_bluetooth/uuid.h", |
| "public/pw_bluetooth/vendor.h", |
| ], |
| includes = ["public"], |
| deps = [ |
| "//pw_chrono:system_clock", |
| "//pw_containers", |
| "//pw_function", |
| "//pw_result", |
| "//pw_status", |
| "//pw_string:string", |
| ], |
| ) |
| |
| cc_library( |
| name = "emboss_util", |
| hdrs = [ |
| "public/pw_bluetooth/emboss_util.h", |
| ], |
| includes = ["public"], |
| deps = [ |
| "//pw_span", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "address_test", |
| srcs = [ |
| "address_test.cc", |
| ], |
| deps = [ |
| ":pw_bluetooth", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "api_test", |
| srcs = [ |
| "api_test.cc", |
| ], |
| deps = [ |
| ":pw_bluetooth", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "result_test", |
| srcs = [ |
| "result_test.cc", |
| ], |
| deps = [ |
| ":pw_bluetooth", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "uuid_test", |
| srcs = [ |
| "uuid_test.cc", |
| ], |
| deps = [ |
| ":pw_bluetooth", |
| ], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_att", |
| srcs = ["public/pw_bluetooth/att.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| deps = [ |
| ":_emboss_hci_data", |
| ":_emboss_l2cap_frames", |
| ], |
| ) |
| |
| cc_library( |
| name = "emboss_att", |
| includes = ["public"], |
| deps = [":_emboss_att"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_android", |
| srcs = ["public/pw_bluetooth/hci_android.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| # emboss_cc_library doesn't support includes, so we need to wrap it. |
| cc_library( |
| name = "emboss_hci_android", |
| includes = ["public"], |
| deps = [":_emboss_hci_android"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_common", |
| srcs = ["public/pw_bluetooth/hci_common.emb"], |
| enable_enum_traits = False, |
| visibility = ["//visibility:private"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_common", |
| includes = ["public"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_commands", |
| srcs = ["public/pw_bluetooth/hci_commands.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_commands", |
| includes = ["public"], |
| deps = [":_emboss_hci_commands"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_data", |
| srcs = ["public/pw_bluetooth/hci_data.emb"], |
| enable_enum_traits = False, |
| visibility = ["//visibility:private"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_data", |
| includes = ["public"], |
| deps = [":_emboss_hci_data"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_events", |
| srcs = ["public/pw_bluetooth/hci_events.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_events", |
| includes = ["public"], |
| deps = [":_emboss_hci_events"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_h4", |
| srcs = ["public/pw_bluetooth/hci_h4.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_h4", |
| includes = ["public"], |
| deps = [":_emboss_hci_h4"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_hci_test", |
| srcs = ["public/pw_bluetooth/hci_test.emb"], |
| enable_enum_traits = False, |
| import_dirs = ["public"], |
| visibility = ["//visibility:private"], |
| deps = [":_emboss_hci_common"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci_test", |
| includes = ["public"], |
| deps = [":_emboss_hci_test"], |
| ) |
| |
| emboss_cc_library( |
| name = "_emboss_l2cap_frames", |
| srcs = ["public/pw_bluetooth/l2cap_frames.emb"], |
| enable_enum_traits = False, |
| visibility = ["//visibility:private"], |
| ) |
| |
| cc_library( |
| name = "emboss_l2cap_frames", |
| includes = ["public"], |
| deps = [":_emboss_l2cap_frames"], |
| ) |
| |
| cc_library( |
| name = "emboss_hci", |
| deps = [ |
| ":emboss_hci_android", |
| ":emboss_hci_commands", |
| ":emboss_hci_common", |
| ":emboss_hci_data", |
| ":emboss_hci_events", |
| ":emboss_hci_h4", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "emboss_test", |
| srcs = ["emboss_test.cc"], |
| deps = [ |
| # All emboss targets are listed (even if they don't have explicit tests) |
| # to ensure they are compiled. |
| ":emboss_att", |
| ":emboss_hci", |
| ":emboss_hci_test", |
| ":emboss_l2cap_frames", |
| "//third_party/fuchsia:stdcompat", |
| ], |
| ) |
| |
| pw_cc_test( |
| name = "emboss_util_test", |
| srcs = [ |
| "emboss_util_test.cc", |
| ], |
| deps = [ |
| ":emboss_hci_test", |
| ":emboss_util", |
| ], |
| ) |
| |
| # Bazel support for Emboss has not been fully configured yet, but we need to |
| # satisfy presubmit. |
| filegroup( |
| name = "emboss_files", |
| srcs = [ |
| "size_report/make_2_views_and_write.cc", |
| "size_report/make_view_and_write.cc", |
| ], |
| ) |