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