blob: bd1dbabfdee75f4449fbf184bd214db4b4355f1a [file] [log] [blame]
James Kuszmaul418fd062022-03-22 15:22:27 -07001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Milo Lin0ddb7782022-08-17 20:40:43 -07002load("config_validator_macro.bzl", "config_validator_rule")
James Kuszmaul418fd062022-03-22 15:22:27 -07003
Brian Silverman6470f442018-08-05 12:08:16 -07004package(default_visibility = ["//visibility:public"])
Brian Silverman100534c2015-09-07 15:51:23 -04005
Milo Lin0ddb7782022-08-17 20:40:43 -07006config_validator_rule(
7 name = "config_validator_test",
8 config = "//aos/events:pingpong_config",
9)
10
Brian Silverman246cb222019-02-02 16:38:18 -080011cc_library(
12 name = "bitpacking",
13 hdrs = [
14 "bitpacking.h",
15 ],
16 visibility = ["//visibility:public"],
17 deps = [
Austin Schuhb72be802022-01-02 12:26:28 -080018 "@com_google_absl//absl/types:span",
Brian Silverman246cb222019-02-02 16:38:18 -080019 ],
20)
21
22cc_test(
23 name = "bitpacking_test",
24 srcs = [
25 "bitpacking_test.cc",
26 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080027 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman246cb222019-02-02 16:38:18 -080028 deps = [
29 ":bitpacking",
30 "//aos/testing:googletest",
31 ],
32)
33
Diana Vandenberg19bb9e22016-02-03 21:24:31 -080034py_library(
Brian Silverman6470f442018-08-05 12:08:16 -070035 name = "py_trapezoid_profile",
36 srcs = [
37 "trapezoid_profile.py",
38 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080039 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -070040 deps = [
41 ":python_init",
42 ],
Diana Vandenberg19bb9e22016-02-03 21:24:31 -080043)
44
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070045cc_binary(
46 name = "log_to_mcap",
47 srcs = ["log_to_mcap.cc"],
48 deps = [
49 ":mcap_logger",
50 "//aos:init",
51 "//aos/events/logging:log_reader",
52 "//frc971/control_loops:control_loops_fbs",
53 ],
54)
55
56cc_library(
James Kuszmaulcc94ed42022-08-24 11:36:17 -070057 name = "error_counter",
58 hdrs = ["error_counter.h"],
59 target_compatible_with = ["@platforms//os:linux"],
60 deps = [
61 "@com_github_google_flatbuffers//:flatbuffers",
62 "@com_github_google_glog//:glog",
63 ],
64)
65
66cc_test(
67 name = "error_counter_test",
68 srcs = ["error_counter_test.cc"],
69 target_compatible_with = ["@platforms//os:linux"],
70 deps = [
71 ":error_counter",
72 "//aos:flatbuffers",
73 "//aos/events:event_loop_fbs",
74 "//aos/testing:googletest",
75 ],
76)
77
78cc_library(
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070079 name = "mcap_logger",
80 srcs = ["mcap_logger.cc"],
81 hdrs = ["mcap_logger.h"],
82 target_compatible_with = ["@platforms//os:linux"],
83 deps = [
84 "//aos:configuration_fbs",
James Kuszmaule4aa01d2022-06-28 14:09:02 -070085 "//aos:configuration_schema",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070086 "//aos:fast_string_builder",
87 "//aos:flatbuffer_utils",
88 "//aos/events:event_loop",
James Kuszmaul5ab990d2022-11-07 16:35:49 -080089 "@com_github_lz4_lz4//:lz4",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070090 "@com_github_nlohmann_json//:json",
91 ],
92)
93
James Kuszmaul5c56ed32022-03-30 15:10:07 -070094cc_binary(
95 name = "generate_test_log",
96 testonly = True,
97 srcs = ["generate_test_log.cc"],
98 data = ["//aos/events:pingpong_config"],
99 deps = [
100 "//aos:configuration",
101 "//aos/events:ping_lib",
102 "//aos/events:pong_lib",
103 "//aos/events:simulated_event_loop",
104 "//aos/events/logging:log_writer",
105 "//aos/testing:path",
106 ],
107)
108
109py_test(
110 name = "log_to_mcap_test",
111 srcs = ["log_to_mcap_test.py"],
112 args = [
113 "--log_to_mcap",
114 "$(location :log_to_mcap)",
115 "--mcap",
116 "$(location @com_github_foxglove_mcap_mcap//file)",
117 "--generate_log",
118 "$(location :generate_test_log)",
119 ],
120 data = [
121 ":generate_test_log",
122 ":log_to_mcap",
123 "@com_github_foxglove_mcap_mcap//file",
124 ],
125 target_compatible_with = ["@platforms//cpu:x86_64"],
126)
127
James Kuszmaul4ed5fb12022-03-22 15:20:04 -0700128cc_test(
129 name = "mcap_logger_test",
130 srcs = ["mcap_logger_test.cc"],
131 target_compatible_with = ["@platforms//os:linux"],
132 deps = [
133 ":mcap_logger",
134 "//aos/testing:googletest",
135 "@com_github_nlohmann_json//:json",
136 ],
137)
138
Brian Silverman100534c2015-09-07 15:51:23 -0400139cc_library(
James Kuszmaul0af658b2019-01-25 18:36:29 -0800140 name = "math",
141 hdrs = ["math.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800142 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul0af658b2019-01-25 18:36:29 -0800143 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700144 "@org_tuxfamily_eigen//:eigen",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800145 ],
146)
147
148cc_test(
149 name = "math_test",
150 srcs = ["math_test.cc"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800151 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul0af658b2019-01-25 18:36:29 -0800152 deps = [
153 ":math",
154 "//aos/testing:googletest",
155 ],
156)
157
158cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700159 name = "death_test_log_implementation",
160 hdrs = [
161 "death_test_log_implementation.h",
162 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800163 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700164 deps = [
John Park33858a32018-09-28 23:05:48 -0700165 "//aos/logging:implementations",
Brian Silverman6470f442018-08-05 12:08:16 -0700166 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400167)
168
169cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700170 name = "phased_loop",
171 srcs = [
172 "phased_loop.cc",
173 ],
174 hdrs = [
175 "phased_loop.h",
176 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800177 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700178 deps = [
James Kuszmaul0af658b2019-01-25 18:36:29 -0800179 "//aos/time",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700180 "@com_github_google_glog//:glog",
Brian Silverman6470f442018-08-05 12:08:16 -0700181 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400182)
183
184cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700185 name = "log_interval",
186 hdrs = [
187 "log_interval.h",
188 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800189 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700190 deps = [
John Park33858a32018-09-28 23:05:48 -0700191 "//aos/logging",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800192 "//aos/time",
Brian Silverman6470f442018-08-05 12:08:16 -0700193 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400194)
195
196cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700197 name = "trapezoid_profile",
198 srcs = [
199 "trapezoid_profile.cc",
200 ],
201 hdrs = [
202 "trapezoid_profile.h",
203 ],
204 linkopts = [
205 "-lm",
206 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800207 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700208 deps = [
John Park33858a32018-09-28 23:05:48 -0700209 "//aos/logging",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800210 "//aos/time",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700211 "@org_tuxfamily_eigen//:eigen",
Brian Silverman6470f442018-08-05 12:08:16 -0700212 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400213)
214
215cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700216 name = "trapezoid_profile_test",
217 srcs = [
218 "trapezoid_profile_test.cc",
219 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800220 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700221 deps = [
222 ":trapezoid_profile",
223 "//aos/testing:googletest",
224 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400225)
226
227cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700228 name = "wrapping_counter",
229 srcs = [
230 "wrapping_counter.cc",
231 ],
232 hdrs = [
233 "wrapping_counter.h",
234 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800235 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman100534c2015-09-07 15:51:23 -0400236)
237
238cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700239 name = "wrapping_counter_test",
240 srcs = [
241 "wrapping_counter_test.cc",
242 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800243 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700244 deps = [
245 ":wrapping_counter",
246 "//aos/testing:googletest",
247 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400248)
249
Austin Schuh044e18b2015-10-21 20:17:09 -0700250cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700251 name = "options",
252 hdrs = [
253 "options.h",
254 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800255 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh044e18b2015-10-21 20:17:09 -0700256)
257
Brian Silverman100534c2015-09-07 15:51:23 -0400258cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700259 name = "options_test",
260 srcs = [
261 "options_test.cc",
262 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800263 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700264 deps = [
265 ":options",
266 "//aos/testing:googletest",
267 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400268)
Brian Silverman3d37a5f2014-09-05 18:42:20 -0400269
270cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700271 name = "compiler_memory_barrier",
272 hdrs = [
273 "compiler_memory_barrier.h",
274 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800275 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman3d37a5f2014-09-05 18:42:20 -0400276)
Brian Silverman521e6ba2014-09-04 13:37:46 -0400277
278cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700279 name = "global_factory",
280 hdrs = [
281 "global_factory.h",
282 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800283 target_compatible_with = ["@platforms//os:linux"],
Parker Schuh36416692017-02-18 17:34:15 -0800284)
285
286cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700287 name = "global_factory_test",
288 srcs = [
289 "global_factory_test.cc",
290 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800291 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700292 deps = [
293 ":global_factory",
294 "//aos/testing:googletest",
295 ],
Parker Schuh36416692017-02-18 17:34:15 -0800296)
297
Brian Silvermandcaa3f72015-11-29 05:32:08 +0000298cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700299 name = "phased_loop_test",
300 srcs = [
301 "phased_loop_test.cc",
302 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800303 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700304 deps = [
305 ":phased_loop",
306 "//aos/testing:googletest",
Brian Silverman8babd8f2020-06-23 16:38:50 -0700307 "//aos/time",
Brian Silverman6470f442018-08-05 12:08:16 -0700308 ],
Brian Silvermandcaa3f72015-11-29 05:32:08 +0000309)
Brian Silverman61175fb2016-03-13 15:35:56 -0400310
311cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700312 name = "file",
313 srcs = [
314 "file.cc",
315 ],
316 hdrs = [
317 "file.h",
318 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800319 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700320 deps = [
John Park33858a32018-09-28 23:05:48 -0700321 "//aos/scoped:scoped_fd",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700322 "@com_github_google_glog//:glog",
Austin Schuhcb108412019-10-13 16:09:54 -0700323 "@com_google_absl//absl/strings",
davidjevans8b9b52f2021-09-17 08:57:30 -0700324 "@com_google_absl//absl/types:span",
Brian Silverman6470f442018-08-05 12:08:16 -0700325 ],
Brian Silverman61175fb2016-03-13 15:35:56 -0400326)
327
328cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700329 name = "file_test",
330 size = "small",
331 srcs = [
332 "file_test.cc",
333 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800334 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700335 deps = [
336 ":file",
James Kuszmaul0625b0d2022-09-21 11:38:48 -0700337 "//aos:realtime",
Brian Silverman6470f442018-08-05 12:08:16 -0700338 "//aos/testing:googletest",
Brian Silverman6470f442018-08-05 12:08:16 -0700339 ],
340)
341
James Kuszmaul418fd062022-03-22 15:22:27 -0700342flatbuffer_cc_library(
343 name = "process_info_fbs",
344 srcs = ["process_info.fbs"],
345 gen_reflections = True,
346 target_compatible_with = ["@platforms//os:linux"],
347 visibility = ["//visibility:public"],
348)
349
350cc_library(
351 name = "top",
352 srcs = ["top.cc"],
353 hdrs = ["top.h"],
354 target_compatible_with = ["@platforms//os:linux"],
355 deps = [
356 ":process_info_fbs",
357 "//aos/containers:ring_buffer",
358 "//aos/events:event_loop",
359 "@com_github_google_glog//:glog",
360 "@com_google_absl//absl/strings",
361 ],
362)
363
364cc_test(
365 name = "top_test",
366 srcs = ["top_test.cc"],
367 data = [
368 "//aos/events:pingpong_config",
369 ],
370 flaky = True,
371 target_compatible_with = ["@platforms//os:linux"],
372 deps = [
373 ":top",
374 "//aos/events:shm_event_loop",
375 "//aos/testing:googletest",
376 "//aos/testing:path",
377 "//aos/testing:tmpdir",
378 ],
379)
380
James Kuszmaul731a05d2022-01-07 17:59:26 -0800381cc_library(
382 name = "scoped_pipe",
383 srcs = ["scoped_pipe.cc"],
384 hdrs = ["scoped_pipe.h"],
385 target_compatible_with = ["@platforms//os:linux"],
386 deps = [
387 "@com_github_google_glog//:glog",
388 "@com_google_absl//absl/types:span",
389 ],
390)
391
392cc_test(
393 name = "scoped_pipe_test",
394 srcs = ["scoped_pipe_test.cc"],
395 target_compatible_with = ["@platforms//os:linux"],
396 deps = [
397 ":scoped_pipe",
398 "//aos/testing:googletest",
399 ],
400)
401
Ravago Jonese12b7902022-02-04 22:50:44 -0800402cc_library(
403 name = "crc32",
404 srcs = ["crc32.cc"],
405 hdrs = ["crc32.h"],
406 deps = [
407 "@com_google_absl//absl/types:span",
408 ],
409)
410
Brian Silverman6470f442018-08-05 12:08:16 -0700411py_library(
412 name = "python_init",
413 srcs = ["__init__.py"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800414 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700415 visibility = ["//visibility:public"],
John Park33858a32018-09-28 23:05:48 -0700416 deps = ["//aos:python_init"],
Brian Silverman61175fb2016-03-13 15:35:56 -0400417)
James Kuszmaule5deaa42022-06-24 16:29:31 -0700418
419cc_library(
420 name = "threaded_queue",
421 hdrs = [
422 "threaded_queue.h",
423 "threaded_queue_tmpl.h",
424 ],
425 deps = [
426 "//aos:condition",
427 "//aos/mutex",
428 ],
429)
430
431cc_test(
432 name = "threaded_queue_test",
433 srcs = ["threaded_queue_test.cc"],
434 deps = [
435 ":threaded_queue",
436 "//aos/testing:googletest",
437 ],
438)
Milo Lin0ddb7782022-08-17 20:40:43 -0700439
James Kuszmaul0de4feb2022-04-15 12:16:59 -0700440cc_library(
441 name = "foxglove_websocket_lib",
442 srcs = ["foxglove_websocket_lib.cc"],
443 hdrs = ["foxglove_websocket_lib.h"],
444 deps = [
445 ":mcap_logger",
446 "//aos/events:event_loop",
447 "@com_github_foxglove_ws-protocol",
448 ],
449)
450
Milo Lin0ddb7782022-08-17 20:40:43 -0700451cc_binary(
452 name = "config_validator",
453 testonly = True,
454 srcs = ["config_validator.cc"],
455 target_compatible_with = ["@platforms//os:linux"],
456 deps = [
457 "//aos:init",
458 "//aos:json_to_flatbuffer",
459 "//aos/events:simulated_event_loop",
460 "//aos/events/logging:log_reader",
461 "//aos/events/logging:log_writer",
462 "//aos/testing:googletest",
463 "@com_github_gflags_gflags//:gflags",
464 "@com_github_google_glog//:glog",
465 "@com_google_googletest//:gtest",
466 ],
467)
James Kuszmaul0de4feb2022-04-15 12:16:59 -0700468
469cc_binary(
470 name = "foxglove_websocket",
471 srcs = ["foxglove_websocket.cc"],
472 visibility = ["//visibility:public"],
473 deps = [
474 ":foxglove_websocket_lib",
475 "//aos:init",
476 "//aos/events:shm_event_loop",
477 "@com_github_gflags_gflags//:gflags",
478 ],
479)