• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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",
107        "//pw_containers:to_array",
108        "//pw_unit_test",
109    ],
110)
111
112pw_cc_library(
113    name = "initiator_gmock",
114    hdrs = [
115        "public/pw_i2c/initiator_gmock.h",
116    ],
117    includes = ["public"],
118    deps = [
119        ":initiator",
120        "@com_google_googletest//:gtest",
121    ],
122)
123
124pw_cc_test(
125    name = "initiator_mock_test",
126    srcs = [
127        "initiator_mock_test.cc",
128    ],
129    deps = [
130        ":initiator_mock",
131        "//pw_bytes",
132        "//pw_containers",
133        "//pw_unit_test",
134    ],
135)
136
137pw_cc_test(
138    name = "device_test",
139    srcs = [
140        "device_test.cc",
141    ],
142    deps = [
143        ":device",
144        ":initiator_mock",
145        "//pw_containers",
146        "//pw_unit_test",
147    ],
148)
149
150pw_cc_test(
151    name = "register_device_test",
152    srcs = [
153        "register_device_test.cc",
154    ],
155    deps = [
156        ":register_device",
157        "//pw_unit_test",
158    ],
159)
160