blob: f3ff9e23c668b3e0f78d2264e0294e8ea0ab61e6 [file] [log] [blame]
Wyatt Hepler2ad60672020-01-21 08:00:16 -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",
18 "pw_cc_test",
19)
20
21package(default_visibility = ["//visibility:public"])
22
23licenses(["notice"]) # Apache License 2.0
24
25pw_cc_library(
26 name = "pw_kvs",
27 srcs = [
Wyatt Hepler1927c282020-02-11 16:45:02 -080028 "alignment.cc",
Wyatt Hepler4da1fcb2020-01-30 17:32:18 -080029 "checksum.cc",
Wyatt Heplerd31d9702020-02-14 08:46:36 -080030 "entry.cc",
Wyatt Hepler7ded6da2020-03-11 18:24:43 -070031 "entry_cache.cc",
Wyatt Hepler4da1fcb2020-01-30 17:32:18 -080032 "flash_memory.cc",
Wyatt Hepler22d0d9f2020-03-05 14:57:11 -080033 "format.cc",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080034 "key_value_store.cc",
Wyatt Heplerbdd8e5a2020-02-20 19:27:26 -080035 "public/pw_kvs/internal/entry.h",
Wyatt Hepler7ded6da2020-03-11 18:24:43 -070036 "public/pw_kvs/internal/entry_cache.h",
Wyatt Hepler1fc11042020-02-19 17:17:51 -080037 "public/pw_kvs/internal/hash.h",
38 "public/pw_kvs/internal/key_descriptor.h",
Wyatt Hepler2454f2d2020-03-20 12:54:35 -070039 "public/pw_kvs/internal/sectors.h",
Keir Mierle0dd24a82020-02-21 16:08:59 -080040 "public/pw_kvs/internal/span_traits.h",
Wyatt Hepler4da1fcb2020-01-30 17:32:18 -080041 "pw_kvs_private/macros.h",
Wyatt Heplerc84393f2020-03-20 11:23:24 -070042 "sectors.cc",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080043 ],
44 hdrs = [
Wyatt Hepler1927c282020-02-11 16:45:02 -080045 "public/pw_kvs/alignment.h",
Wyatt Hepler4da1fcb2020-01-30 17:32:18 -080046 "public/pw_kvs/checksum.h",
Wyatt Heplerec4b9352020-01-31 15:51:50 -080047 "public/pw_kvs/crc16_checksum.h",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080048 "public/pw_kvs/flash_memory.h",
Wyatt Hepler88adfe82020-02-20 19:33:27 -080049 "public/pw_kvs/format.h",
Wyatt Hepler06b1b0b2020-03-09 08:26:34 -070050 "public/pw_kvs/io.h",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080051 "public/pw_kvs/key_value_store.h",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080052 ],
53 includes = ["public"],
54 deps = [
David Rogersc0104462020-05-08 15:50:23 -070055 "//pw_assert",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080056 "//pw_checksum",
Wyatt Hepler1c329ca2020-02-07 18:07:23 -080057 "//pw_containers",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080058 "//pw_log",
Rob Mohr06819482020-04-06 13:25:43 -070059 "//pw_log:facade",
60 "//pw_span",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080061 "//pw_status",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080062 ],
63)
64
Wyatt Heplerec4b9352020-01-31 15:51:50 -080065pw_cc_library(
66 name = "crc16",
67 hdrs = [
68 "public/pw_kvs/crc16_checksum.h",
69 ],
70 deps = [
71 ":pw_kvs",
72 "//pw_checksum",
Rob Mohr06819482020-04-06 13:25:43 -070073 "//pw_span",
Wyatt Heplerec4b9352020-01-31 15:51:50 -080074 ],
75)
76
Wyatt Heplerad684a12020-02-04 17:17:29 -080077pw_cc_library(
David Rogersd64cc012020-05-26 12:37:37 -070078 name = "fake_flash",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080079 srcs = [
David Rogersd64cc012020-05-26 12:37:37 -070080 "fake_flash_memory.cc",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080081 ],
Wyatt Heplerad684a12020-02-04 17:17:29 -080082 hdrs = [
David Rogersd64cc012020-05-26 12:37:37 -070083 "public/pw_kvs/fake_flash_memory.h",
Wyatt Heplerad684a12020-02-04 17:17:29 -080084 ],
Wyatt Heplerad684a12020-02-04 17:17:29 -080085 deps = [
David Rogersd64cc012020-05-26 12:37:37 -070086 ":pw_kvs",
Rob Mohr06819482020-04-06 13:25:43 -070087 "//pw_containers",
Wyatt Heplerad684a12020-02-04 17:17:29 -080088 "//pw_log",
Rob Mohr06819482020-04-06 13:25:43 -070089 "//pw_log:facade",
90 "//pw_span",
Wyatt Heplerad684a12020-02-04 17:17:29 -080091 "//pw_status",
92 ],
93)
94
David Rogers5cc5ce82020-03-13 19:19:03 -070095pw_cc_library(
David Rogersd64cc012020-05-26 12:37:37 -070096 name = "test_utils",
97 hdrs = [
98 "pw_kvs_private/byte_utils.h",
99 ],
100 includes = ["public"],
101 visibility = ["//visibility:private"],
102)
103
104pw_cc_library(
David Rogers5cc5ce82020-03-13 19:19:03 -0700105 name = "test_partition",
106 srcs = [
107 "flash_partition_with_stats.cc",
108 ],
109 hdrs = [
110 "public/pw_kvs/flash_partition_with_stats.h",
111 ],
112 includes = ["public"],
113 visibility = ["//visibility:private"],
114 deps = [
Rob Mohr06819482020-04-06 13:25:43 -0700115 "//pw_containers",
David Rogers5cc5ce82020-03-13 19:19:03 -0700116 "//pw_kvs",
117 "//pw_log",
Rob Mohr06819482020-04-06 13:25:43 -0700118 "//pw_log:facade",
David Rogers5cc5ce82020-03-13 19:19:03 -0700119 "//pw_status",
120 ],
121)
122
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800123pw_cc_test(
Wyatt Hepler1927c282020-02-11 16:45:02 -0800124 name = "alignment_test",
125 srcs = [
126 "alignment_test.cc",
127 ],
128 deps = [
129 ":pw_kvs",
Rob Mohr06819482020-04-06 13:25:43 -0700130 "//pw_status",
131 "//pw_unit_test",
Wyatt Hepler1927c282020-02-11 16:45:02 -0800132 ],
133)
134
135pw_cc_test(
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800136 name = "checksum_test",
137 srcs = ["checksum_test.cc"],
138 deps = [
139 ":crc16",
140 ":pw_kvs",
141 "//pw_checksum",
142 "//pw_log",
Rob Mohr06819482020-04-06 13:25:43 -0700143 "//pw_unit_test",
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800144 ],
145)
146
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800147pw_cc_test(
Wyatt Hepler97fc7942020-02-06 15:55:45 -0800148 name = "entry_test",
149 srcs = [
150 "entry_test.cc",
151 ],
152 deps = [
153 ":pw_kvs",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800154 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700155 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700156 "//pw_span",
157 "//pw_unit_test",
Wyatt Hepler97fc7942020-02-06 15:55:45 -0800158 ],
159)
160
161pw_cc_test(
Wyatt Hepler7ded6da2020-03-11 18:24:43 -0700162 name = "entry_cache_test",
163 srcs = ["entry_cache_test.cc"],
Wyatt Hepler02946272020-03-18 10:36:22 -0700164 deps = [
165 ":pw_kvs",
166 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700167 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700168 "//pw_unit_test",
Wyatt Hepler02946272020-03-18 10:36:22 -0700169 ],
Wyatt Hepler7ded6da2020-03-11 18:24:43 -0700170)
171
172pw_cc_test(
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800173 name = "key_value_store_test",
174 srcs = ["key_value_store_test.cc"],
175 deps = [
176 ":crc16",
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800177 ":pw_kvs",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800178 ":test_utils",
Rob Mohr06819482020-04-06 13:25:43 -0700179 "//pw_checksum",
Rob Mohr4d615402020-04-03 12:13:19 -0700180 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700181 "//pw_log:facade",
182 "//pw_span",
183 "//pw_status",
184 "//pw_string",
185 "//pw_unit_test",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800186 ],
187)
188
189pw_cc_test(
Wyatt Hepler8e94ed62020-03-05 16:45:32 -0800190 name = "key_value_store_binary_format_test",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800191 srcs = [
Wyatt Hepler8e94ed62020-03-05 16:45:32 -0800192 "key_value_store_binary_format_test.cc",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800193 ],
194 deps = [
195 ":crc16",
196 ":pw_kvs",
197 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700198 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700199 "//pw_unit_test",
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800200 ],
201)
202
203pw_cc_test(
Wyatt Hepler16b04522020-02-07 16:00:14 -0800204 name = "key_value_store_fuzz_test",
205 srcs = ["key_value_store_fuzz_test.cc"],
206 deps = [
207 ":crc16",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800208 ":pw_kvs",
David Rogers5cc5ce82020-03-13 19:19:03 -0700209 ":test_partition",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800210 ":test_utils",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800211 "//pw_checksum",
Rob Mohr4d615402020-04-03 12:13:19 -0700212 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700213 "//pw_unit_test",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800214 ],
215)
216
217pw_cc_test(
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800218 name = "key_value_store_map_test",
219 srcs = ["key_value_store_map_test.cc"],
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800220 deps = [
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800221 ":crc16",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800222 ":pw_kvs",
David Rogers5cc5ce82020-03-13 19:19:03 -0700223 ":test_partition",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800224 ":test_utils",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800225 "//pw_checksum",
Rob Mohr4d615402020-04-03 12:13:19 -0700226 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700227 "//pw_log:facade",
228 "//pw_span",
229 "//pw_unit_test",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800230 ],
231)
Wyatt Heplerd6216822020-02-04 16:39:15 -0800232
Wyatt Heplerc84393f2020-03-20 11:23:24 -0700233pw_cc_test(
234 name = "sectors_test",
235 srcs = ["sectors_test.cc"],
236 deps = [
237 ":pw_kvs",
238 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700239 "//pw_log:backend",
Rob Mohr06819482020-04-06 13:25:43 -0700240 "//pw_unit_test",
Wyatt Heplerc84393f2020-03-20 11:23:24 -0700241 ],
242)
243
Armando Montanezf9e93e12020-04-22 07:44:14 -0700244pw_cc_test(
245 name = "key_value_store_wear_test",
246 srcs = [
247 "key_value_store_wear_test.cc",
248 ],
249 deps = [
250 ":pw_kvs",
David Rogersd5138f32020-04-28 15:18:56 -0700251 ":test_partition",
Armando Montanezf9e93e12020-04-22 07:44:14 -0700252 ":test_utils",
253 "//pw_log:backend",
254 "//pw_unit_test",
255 ],
256)
257
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800258# TODO: This binary is not building due to a linker error. The error does not occur in GN Builds.
259# A filegroup is used below so that the file is included in the Bazel build.
260# cc_binary(
261# name = "debug_cli",
262# srcs = ["debug_cli.cc"],
263# copts = ["-std=c++17"],
264# deps = [
265# ":crc16",
266# ":pw_kvs",
267# ":test_utils",
268# ],
269# )
270
271filegroup(
Wyatt Heplerd6216822020-02-04 16:39:15 -0800272 name = "debug_cli",
273 srcs = ["debug_cli.cc"],
Wyatt Heplerd6216822020-02-04 16:39:15 -0800274)