blob: 4af36ce38731add4ba7ef5319fd9e018a2bff9f2 [file]
# Copyright 2024 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("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library")
load("//pw_bloat:pw_size_diff.bzl", "pw_size_diff")
load("//pw_bloat:pw_size_table.bzl", "pw_size_table")
load("//pw_bluetooth_proxy:bt-proxy.bzl", "pw_bluetooth_proxy_library", "pw_bluetooth_proxy_test", "pw_bluetooth_proxy_test_utils")
load("//pw_build:compatibility.bzl", "incompatible_with_mcu")
package(
default_visibility = ["//visibility:public"],
features = [
"-layering_check",
"-ctad_warnings",
],
)
licenses(["notice"])
# Module configuration
cc_library(
name = "config",
hdrs = ["public/pw_bluetooth_proxy/config.h"],
strip_include_prefix = "public",
deps = [":config_override"],
)
label_flag(
name = "config_override",
build_setting_default = "//pw_build:default_module_config",
)
label_flag(
name = "clock_backend",
build_setting_default = ":system_clock_backend",
)
cc_library(
name = "system_clock_backend",
hdrs = ["public_overrides/system_clock_backend/pw_bluetooth_proxy_backend/clock.h"],
strip_include_prefix = "public_overrides/system_clock_backend",
deps = [
"//pw_async2:system_time_provider",
"//pw_chrono:system_clock",
],
)
# Libraries
# LINT.IfChange
cc_library(
name = "clock",
hdrs = ["public/pw_bluetooth_proxy/clock.h"],
strip_include_prefix = "public",
visibility = ["//pw_bluetooth_proxy:__subpackages__"],
deps = [
":clock_backend",
":config",
],
)
pw_bluetooth_proxy_library(
name = "pw_bluetooth_proxy",
)
pw_bluetooth_proxy_library(
name = "pw_bluetooth_proxy_sync",
testonly = True,
defines = ["PW_BLUETOOTH_PROXY_ASYNC=0"],
visibility = ["//pw_bluetooth_proxy:__subpackages__"],
)
pw_bluetooth_proxy_library(
name = "pw_bluetooth_proxy_async",
testonly = True,
defines = ["PW_BLUETOOTH_PROXY_ASYNC=1"],
visibility = ["//pw_bluetooth_proxy:__subpackages__"],
)
alias(
name = "gatt",
actual = "//pw_bluetooth_proxy/gatt",
)
alias(
name = "rfcomm",
actual = "//pw_bluetooth_proxy/rfcomm",
)
# Tests
pw_bluetooth_proxy_test_utils(
name = "test_utils_sync",
defines = ["PW_BLUETOOTH_PROXY_ASYNC=0"],
versioned_deps = [":pw_bluetooth_proxy_sync"],
visibility = ["//pw_bluetooth_proxy:__subpackages__"],
)
pw_bluetooth_proxy_test_utils(
name = "test_utils_async",
defines = ["PW_BLUETOOTH_PROXY_ASYNC=1"],
versioned_deps = [":pw_bluetooth_proxy_async"],
visibility = ["//pw_bluetooth_proxy:__subpackages__"],
)
pw_bluetooth_proxy_test(
name = "pw_bluetooth_proxy_sync_test",
defines = ["PW_BLUETOOTH_PROXY_ASYNC=0"],
versioned_deps = [
":pw_bluetooth_proxy_sync",
":test_utils_sync",
],
)
pw_bluetooth_proxy_test(
name = "pw_bluetooth_proxy_async_test",
defines = ["PW_BLUETOOTH_PROXY_ASYNC=1"],
versioned_deps = [
":pw_bluetooth_proxy_async",
":test_utils_async",
],
)
# LINT.ThenChange(BUILD.gn, CMakeLists.txt)
filegroup(
name = "doxygen",
srcs = [
"public/pw_bluetooth_proxy/config.h",
"public/pw_bluetooth_proxy/h4_packet.h",
"public/pw_bluetooth_proxy/proxy_host.h",
],
)
pw_size_diff(
name = "use_passthrough_proxy_size_diff",
base = "//pw_bloat:bloat_base",
label = "Create and use proxy as a simple passthrough",
target = "//pw_bluetooth_proxy/size_report:use_passthrough_proxy",
)
pw_size_table(
name = "use_passthrough_proxy_size_report",
reports = [
":use_passthrough_proxy_size_diff",
],
)
sphinx_docs_library(
name = "docs",
srcs = [
"docs.rst",
"proxy_host_test.cc",
":use_passthrough_proxy_size_report",
],
prefix = "pw_bluetooth_proxy/",
target_compatible_with = incompatible_with_mcu(),
)