blob: 3720f936677f98e8434123c20100184f7b8cf66d [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 = [
55 "//pw_checksum",
Wyatt Hepler1c329ca2020-02-07 18:07:23 -080056 "//pw_containers",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080057 "//pw_log",
58 "//pw_status",
Wyatt Hepler2ad60672020-01-21 08:00:16 -080059 ],
60)
61
Wyatt Heplerec4b9352020-01-31 15:51:50 -080062pw_cc_library(
63 name = "crc16",
64 hdrs = [
65 "public/pw_kvs/crc16_checksum.h",
66 ],
67 deps = [
68 ":pw_kvs",
69 "//pw_checksum",
70 ],
71)
72
Wyatt Heplerad684a12020-02-04 17:17:29 -080073pw_cc_library(
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080074 name = "test_utils",
75 srcs = [
76 "in_memory_fake_flash.cc",
77 ],
Wyatt Heplerad684a12020-02-04 17:17:29 -080078 hdrs = [
79 "public/pw_kvs/in_memory_fake_flash.h",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080080 "pw_kvs_private/byte_utils.h",
Wyatt Heplerad684a12020-02-04 17:17:29 -080081 ],
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080082 includes = ["public"],
Wyatt Heplerad684a12020-02-04 17:17:29 -080083 visibility = ["//visibility:private"],
84 deps = [
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -080085 "//pw_kvs",
Wyatt Heplerad684a12020-02-04 17:17:29 -080086 "//pw_log",
87 "//pw_status",
88 ],
89)
90
David Rogers5cc5ce82020-03-13 19:19:03 -070091pw_cc_library(
92 name = "test_partition",
93 srcs = [
94 "flash_partition_with_stats.cc",
95 ],
96 hdrs = [
97 "public/pw_kvs/flash_partition_with_stats.h",
98 ],
99 includes = ["public"],
100 visibility = ["//visibility:private"],
101 deps = [
102 "//pw_kvs",
103 "//pw_log",
104 "//pw_status",
105 ],
106)
107
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800108pw_cc_test(
Wyatt Hepler1927c282020-02-11 16:45:02 -0800109 name = "alignment_test",
110 srcs = [
111 "alignment_test.cc",
112 ],
113 deps = [
114 ":pw_kvs",
115 ],
116)
117
118pw_cc_test(
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800119 name = "checksum_test",
120 srcs = ["checksum_test.cc"],
121 deps = [
122 ":crc16",
123 ":pw_kvs",
124 "//pw_checksum",
125 "//pw_log",
126 ],
127)
128
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800129pw_cc_test(
Wyatt Hepler97fc7942020-02-06 15:55:45 -0800130 name = "entry_test",
131 srcs = [
132 "entry_test.cc",
133 ],
134 deps = [
135 ":pw_kvs",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800136 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700137 "//pw_log:backend",
Wyatt Hepler97fc7942020-02-06 15:55:45 -0800138 ],
139)
140
141pw_cc_test(
Wyatt Hepler7ded6da2020-03-11 18:24:43 -0700142 name = "entry_cache_test",
143 srcs = ["entry_cache_test.cc"],
Wyatt Hepler02946272020-03-18 10:36:22 -0700144 deps = [
145 ":pw_kvs",
146 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700147 "//pw_log:backend",
Wyatt Hepler02946272020-03-18 10:36:22 -0700148 ],
Wyatt Hepler7ded6da2020-03-11 18:24:43 -0700149)
150
151pw_cc_test(
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800152 name = "key_value_store_test",
153 srcs = ["key_value_store_test.cc"],
154 deps = [
155 ":crc16",
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800156 ":pw_kvs",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800157 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700158 "//pw_log:backend",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800159 ],
160)
161
162pw_cc_test(
Wyatt Hepler8e94ed62020-03-05 16:45:32 -0800163 name = "key_value_store_binary_format_test",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800164 srcs = [
Wyatt Hepler8e94ed62020-03-05 16:45:32 -0800165 "key_value_store_binary_format_test.cc",
Wyatt Hepler118fc3c2020-02-21 14:23:19 -0800166 ],
167 deps = [
168 ":crc16",
169 ":pw_kvs",
170 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700171 "//pw_log:backend",
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800172 ],
173)
174
175pw_cc_test(
Wyatt Hepler16b04522020-02-07 16:00:14 -0800176 name = "key_value_store_fuzz_test",
177 srcs = ["key_value_store_fuzz_test.cc"],
178 deps = [
179 ":crc16",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800180 ":pw_kvs",
David Rogers5cc5ce82020-03-13 19:19:03 -0700181 ":test_partition",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800182 ":test_utils",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800183 "//pw_checksum",
Rob Mohr4d615402020-04-03 12:13:19 -0700184 "//pw_log:backend",
Wyatt Hepler16b04522020-02-07 16:00:14 -0800185 ],
186)
187
188pw_cc_test(
Wyatt Hepler495b6ee2020-02-12 18:58:01 -0800189 name = "key_value_store_map_test",
190 srcs = ["key_value_store_map_test.cc"],
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800191 deps = [
Wyatt Heplerec4b9352020-01-31 15:51:50 -0800192 ":crc16",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800193 ":pw_kvs",
David Rogers5cc5ce82020-03-13 19:19:03 -0700194 ":test_partition",
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800195 ":test_utils",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800196 "//pw_checksum",
Rob Mohr4d615402020-04-03 12:13:19 -0700197 "//pw_log:backend",
Wyatt Hepler2ad60672020-01-21 08:00:16 -0800198 ],
199)
Wyatt Heplerd6216822020-02-04 16:39:15 -0800200
Wyatt Heplerc84393f2020-03-20 11:23:24 -0700201pw_cc_test(
202 name = "sectors_test",
203 srcs = ["sectors_test.cc"],
204 deps = [
205 ":pw_kvs",
206 ":test_utils",
Rob Mohr4d615402020-04-03 12:13:19 -0700207 "//pw_log:backend",
Wyatt Heplerc84393f2020-03-20 11:23:24 -0700208 ],
209)
210
Wyatt Heplercdd6dfc2020-02-18 12:04:04 -0800211# TODO: This binary is not building due to a linker error. The error does not occur in GN Builds.
212# A filegroup is used below so that the file is included in the Bazel build.
213# cc_binary(
214# name = "debug_cli",
215# srcs = ["debug_cli.cc"],
216# copts = ["-std=c++17"],
217# deps = [
218# ":crc16",
219# ":pw_kvs",
220# ":test_utils",
221# ],
222# )
223
224filegroup(
Wyatt Heplerd6216822020-02-04 16:39:15 -0800225 name = "debug_cli",
226 srcs = ["debug_cli.cc"],
Wyatt Heplerd6216822020-02-04 16:39:15 -0800227)