• 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: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