xref: /aosp_15_r20/external/pigweed/pw_digital_io/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2020 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("@rules_python//python:proto.bzl", "py_proto_library")
16load(
17    "//pw_protobuf_compiler:pw_proto_library.bzl",
18    "pwpb_proto_library",
19    "pwpb_rpc_proto_library",
20)
21load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test")
22
23package(default_visibility = ["//visibility:public"])
24
25licenses(["notice"])
26
27cc_library(
28    name = "pw_digital_io",
29    srcs = ["digital_io.cc"],
30    hdrs = [
31        "public/pw_digital_io/digital_io.h",
32        "public/pw_digital_io/internal/conversions.h",
33        "public/pw_digital_io/polarity.h",
34    ],
35    strip_include_prefix = "public",
36    deps = [
37        "//pw_assert",
38        "//pw_function",
39        "//pw_result",
40        "//pw_status",
41        "//pw_toolchain:sibling_cast",
42    ],
43)
44
45pw_cc_test(
46    name = "digital_io_test",
47    srcs = ["digital_io_test.cc"],
48    deps = [
49        ":pw_digital_io",
50        "//pw_unit_test",
51    ],
52)
53
54cc_library(
55    name = "digital_io_service",
56    srcs = ["digital_io_service.cc"],
57    hdrs = ["public/pw_digital_io/digital_io_service.h"],
58    strip_include_prefix = "public",
59    deps = [
60        ":digital_io_proto_pwpb",
61        ":digital_io_proto_pwpb_rpc",
62        ":pw_digital_io",
63        "//pw_function",
64        "//pw_rpc/pwpb:server_api",
65        "//pw_span",
66    ],
67)
68
69proto_library(
70    name = "digital_io_proto",
71    srcs = ["digital_io.proto"],
72)
73
74pwpb_proto_library(
75    name = "digital_io_proto_pwpb",
76    deps = [":digital_io_proto"],
77)
78
79pwpb_rpc_proto_library(
80    name = "digital_io_proto_pwpb_rpc",
81    pwpb_proto_library_deps = [":digital_io_proto_pwpb"],
82    deps = [":digital_io_proto"],
83)
84
85py_proto_library(
86    name = "digital_io_proto_py_pb2",
87    deps = [":digital_io_proto"],
88)
89
90cc_library(
91    name = "digital_io_mock",
92    srcs = ["digital_io_mock.cc"],
93    hdrs = ["public/pw_digital_io/digital_io_mock.h"],
94    implementation_deps = [
95        "//pw_log",
96    ],
97    strip_include_prefix = "public",
98    deps = [
99        "//pw_assert:check",
100        "//pw_chrono:system_clock",
101        "//pw_containers:inline_deque",
102        "//pw_digital_io",
103        "//pw_result",
104    ],
105)
106
107pw_cc_test(
108    name = "digital_io_mock_test",
109    srcs = ["digital_io_mock_test.cc"],
110    deps = [
111        ":digital_io_mock",
112        "//pw_unit_test",
113    ],
114)
115
116filegroup(
117    name = "doxygen",
118    srcs = [
119        "public/pw_digital_io/digital_io.h",
120        "public/pw_digital_io/digital_io_mock.h",
121    ],
122)
123