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( 16 "//pw_build:pigweed.bzl", 17 "pw_cc_library", 18 "pw_cc_test", 19) 20 21package(default_visibility = ["//visibility:public"]) 22 23licenses(["notice"]) 24 25pw_cc_library( 26 name = "address", 27 srcs = [ 28 "address.cc", 29 ], 30 hdrs = [ 31 "public/pw_i2c/address.h", 32 ], 33 includes = ["public"], 34 deps = [ 35 "//pw_assert", 36 ], 37) 38 39pw_cc_library( 40 name = "initiator", 41 hdrs = [ 42 "public/pw_i2c/initiator.h", 43 ], 44 includes = ["public"], 45 deps = [ 46 "//pw_bytes", 47 "//pw_chrono:system_clock", 48 "//pw_status", 49 ], 50) 51 52pw_cc_library( 53 name = "device", 54 hdrs = [ 55 "public/pw_i2c/device.h", 56 ], 57 includes = ["public"], 58 deps = [ 59 ":address", 60 ":initiator", 61 "//pw_bytes", 62 "//pw_chrono:system_clock", 63 "//pw_status", 64 ], 65) 66 67pw_cc_library( 68 name = "register_device", 69 srcs = ["register_device.cc"], 70 hdrs = [ 71 "public/pw_i2c/register_device.h", 72 ], 73 includes = ["public"], 74 deps = [ 75 ":address", 76 ":device", 77 ":initiator", 78 "//pw_bytes", 79 "//pw_chrono:system_clock", 80 "//pw_result", 81 "//pw_status", 82 ], 83) 84 85pw_cc_test( 86 name = "address_test", 87 srcs = [ 88 "address_test.cc", 89 ], 90 deps = [ 91 ":address", 92 "//pw_unit_test", 93 ], 94) 95 96pw_cc_library( 97 name = "initiator_mock", 98 testonly = True, 99 srcs = ["initiator_mock.cc"], 100 hdrs = ["public/pw_i2c/initiator_mock.h"], 101 includes = ["public"], 102 deps = [ 103 ":address", 104 ":initiator", 105 "//pw_assert", 106 "//pw_containers:to_array", 107 "//pw_unit_test", 108 ], 109) 110 111pw_cc_library( 112 name = "initiator_gmock", 113 hdrs = [ 114 "public/pw_i2c/initiator_gmock.h", 115 ], 116 includes = ["public"], 117 deps = [ 118 ":initiator", 119 "@com_google_googletest//:gtest", 120 ], 121) 122 123pw_cc_test( 124 name = "initiator_mock_test", 125 srcs = [ 126 "initiator_mock_test.cc", 127 ], 128 deps = [ 129 ":initiator_mock", 130 "//pw_bytes", 131 "//pw_unit_test", 132 ], 133) 134 135pw_cc_test( 136 name = "device_test", 137 srcs = [ 138 "device_test.cc", 139 ], 140 deps = [ 141 ":device", 142 "//pw_unit_test", 143 ], 144) 145 146pw_cc_test( 147 name = "register_device_test", 148 srcs = [ 149 "register_device_test.cc", 150 ], 151 deps = [ 152 ":register_device", 153 "//pw_unit_test", 154 ], 155) 156