blob: 592e466f3a1266b85adaf7cd137456e6c7a78660 [file] [log] [blame]
Ewout van Bekkumd1669a82020-12-04 16:00:47 -08001# 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",
Max Koopman84d599d2021-02-11 09:38:57 -080018 "pw_cc_test",
Ewout van Bekkumd1669a82020-12-04 16:00:47 -080019)
20
21package(default_visibility = ["//visibility:public"])
22
23licenses(["notice"]) # Apache License 2.0
24
25pw_cc_library(
26 name = "address",
Nathaniel Brougha1113be2021-03-07 09:05:41 +080027 srcs = [
28 "address.cc",
29 ],
Ewout van Bekkumd1669a82020-12-04 16:00:47 -080030 hdrs = [
31 "public/pw_i2c/address.h",
32 ],
33 includes = ["public"],
Ewout van Bekkumd1669a82020-12-04 16:00:47 -080034 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)
Max Koopman84d599d2021-02-11 09:38:57 -080051
Kevin Zeng6e15a132021-04-16 00:34:17 -070052pw_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
Kevin Zeng58b43d32021-04-16 00:36:16 -070067pw_cc_library(
68 name = "register_device",
Rob Mohr10663e22021-05-14 12:48:35 -070069 srcs = ["register_device.cc"],
Kevin Zeng58b43d32021-04-16 00:36:16 -070070 hdrs = [
71 "public/pw_i2c/register_device.h",
72 ],
73 includes = ["public"],
Kevin Zeng58b43d32021-04-16 00:36:16 -070074 deps = [
75 ":address",
76 ":device",
77 ":initiator",
78 "//pw_bytes",
79 "//pw_chrono:system_clock",
80 "//pw_result",
81 "//pw_status",
82 ],
83)
84
Max Koopman84d599d2021-02-11 09:38:57 -080085pw_cc_test(
86 name = "address_test",
87 srcs = [
88 "address_test.cc",
89 ],
90 deps = [
91 ":address",
Nathaniel Brough7c773ff2021-05-05 08:24:31 +080092 "//pw_assert",
93 "//pw_unit_test",
94 ],
95)
96
97pw_cc_library(
98 name = "initiator_mock",
99 testonly = True,
100 srcs = ["initiator_mock.cc"],
101 hdrs = ["public/pw_i2c/initiator_mock.h"],
102 includes = ["public"],
103 deps = [
104 ":address",
105 ":initiator",
106 "//pw_assert",
107 "//pw_unit_test",
108 ],
109)
110
Kevin Zeng6a5bf0b2021-06-08 11:01:38 -0700111pw_cc_library(
112 name = "initiator_gmock",
113 hdrs = [
114 "public/pw_i2c/initiator_gmock.h",
115 ],
116 includes = ["public"],
117 deps = [
Kevin Zeng6a5bf0b2021-06-08 11:01:38 -0700118 "$dir_pw_third_party/googletest",
Rob Mohr3700f8b2021-06-14 18:18:17 -0700119 ":initiator",
Kevin Zeng6a5bf0b2021-06-08 11:01:38 -0700120 ],
121)
122
Nathaniel Brough7c773ff2021-05-05 08:24:31 +0800123pw_cc_test(
124 name = "initiator_mock_test",
125 srcs = [
126 "initiator_mock_test.cc",
127 ],
128 deps = [
129 ":initiator_mock",
130 "//pw_bytes",
Max Koopman84d599d2021-02-11 09:38:57 -0800131 "//pw_unit_test",
132 ],
133)
Kevin Zeng6e15a132021-04-16 00:34:17 -0700134
135pw_cc_test(
136 name = "device_test",
137 srcs = [
138 "device_test.cc",
139 ],
140 deps = [
141 ":device",
142 "//pw_unit_test",
143 ],
144)
Kevin Zeng58b43d32021-04-16 00:36:16 -0700145
146pw_cc_test(
147 name = "register_device_test",
148 srcs = [
149 "register_device_test.cc",
150 ],
151 deps = [
152 ":register_device",
153 "//pw_assert",
154 "//pw_unit_test",
155 ],
156)