blob: 929b3766fb33edca9c89c3cda2c572e1018f0758 [file] [log] [blame]
James Kuszmaul418fd062022-03-22 15:22:27 -07001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
James Kuszmaul80d6c422023-01-06 14:16:04 -08002load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
Milo Lin0ddb7782022-08-17 20:40:43 -07003load("config_validator_macro.bzl", "config_validator_rule")
James Kuszmaul418fd062022-03-22 15:22:27 -07004
Brian Silverman6470f442018-08-05 12:08:16 -07005package(default_visibility = ["//visibility:public"])
Brian Silverman100534c2015-09-07 15:51:23 -04006
Milo Lin0ddb7782022-08-17 20:40:43 -07007config_validator_rule(
8 name = "config_validator_test",
9 config = "//aos/events:pingpong_config",
10)
11
Brian Silverman246cb222019-02-02 16:38:18 -080012cc_library(
13 name = "bitpacking",
14 hdrs = [
15 "bitpacking.h",
16 ],
17 visibility = ["//visibility:public"],
18 deps = [
Austin Schuhb72be802022-01-02 12:26:28 -080019 "@com_google_absl//absl/types:span",
Brian Silverman246cb222019-02-02 16:38:18 -080020 ],
21)
22
23cc_test(
24 name = "bitpacking_test",
25 srcs = [
26 "bitpacking_test.cc",
27 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080028 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman246cb222019-02-02 16:38:18 -080029 deps = [
30 ":bitpacking",
31 "//aos/testing:googletest",
32 ],
33)
34
Diana Vandenberg19bb9e22016-02-03 21:24:31 -080035py_library(
Brian Silverman6470f442018-08-05 12:08:16 -070036 name = "py_trapezoid_profile",
37 srcs = [
38 "trapezoid_profile.py",
39 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080040 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -070041 deps = [
42 ":python_init",
43 ],
Diana Vandenberg19bb9e22016-02-03 21:24:31 -080044)
45
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070046cc_binary(
47 name = "log_to_mcap",
48 srcs = ["log_to_mcap.cc"],
49 deps = [
James Kuszmaul80d6c422023-01-06 14:16:04 -080050 ":clock_publisher",
51 ":clock_timepoints_schema",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070052 ":mcap_logger",
James Kuszmaul80d6c422023-01-06 14:16:04 -080053 "//aos:configuration",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -070054 "//aos:init",
55 "//aos/events/logging:log_reader",
56 "//frc971/control_loops:control_loops_fbs",
57 ],
58)
59
60cc_library(
James Kuszmaulcc94ed42022-08-24 11:36:17 -070061 name = "error_counter",
62 hdrs = ["error_counter.h"],
63 target_compatible_with = ["@platforms//os:linux"],
64 deps = [
65 "@com_github_google_flatbuffers//:flatbuffers",
66 "@com_github_google_glog//:glog",
67 ],
68)
69
70cc_test(
71 name = "error_counter_test",
72 srcs = ["error_counter_test.cc"],
73 target_compatible_with = ["@platforms//os:linux"],
74 deps = [
75 ":error_counter",
76 "//aos:flatbuffers",
77 "//aos/events:event_loop_fbs",
78 "//aos/testing:googletest",
79 ],
80)
81
James Kuszmaul80d6c422023-01-06 14:16:04 -080082flatbuffer_cc_library(
83 name = "clock_timepoints_fbs",
84 srcs = ["clock_timepoints.fbs"],
85 gen_reflections = True,
86 deps = ["//aos:configuration_fbs"],
87)
88
89cc_static_flatbuffer(
90 name = "clock_timepoints_schema",
91 function = "aos::ClockTimepointsSchema",
92 target = ":clock_timepoints_fbs_reflection_out",
93)
94
95cc_library(
96 name = "clock_publisher",
97 srcs = ["clock_publisher.cc"],
98 hdrs = ["clock_publisher.h"],
99 deps = [
100 ":clock_timepoints_fbs",
101 "//aos/events:simulated_event_loop",
102 ],
103)
104
James Kuszmaulcc94ed42022-08-24 11:36:17 -0700105cc_library(
James Kuszmaul4ed5fb12022-03-22 15:20:04 -0700106 name = "mcap_logger",
107 srcs = ["mcap_logger.cc"],
108 hdrs = ["mcap_logger.h"],
109 target_compatible_with = ["@platforms//os:linux"],
110 deps = [
111 "//aos:configuration_fbs",
James Kuszmaule4aa01d2022-06-28 14:09:02 -0700112 "//aos:configuration_schema",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -0700113 "//aos:fast_string_builder",
114 "//aos:flatbuffer_utils",
115 "//aos/events:event_loop",
James Kuszmaul5ab990d2022-11-07 16:35:49 -0800116 "@com_github_lz4_lz4//:lz4",
James Kuszmaul4ed5fb12022-03-22 15:20:04 -0700117 "@com_github_nlohmann_json//:json",
118 ],
119)
120
James Kuszmaul5c56ed32022-03-30 15:10:07 -0700121cc_binary(
122 name = "generate_test_log",
123 testonly = True,
124 srcs = ["generate_test_log.cc"],
125 data = ["//aos/events:pingpong_config"],
126 deps = [
127 "//aos:configuration",
128 "//aos/events:ping_lib",
129 "//aos/events:pong_lib",
130 "//aos/events:simulated_event_loop",
131 "//aos/events/logging:log_writer",
132 "//aos/testing:path",
133 ],
134)
135
136py_test(
137 name = "log_to_mcap_test",
138 srcs = ["log_to_mcap_test.py"],
139 args = [
140 "--log_to_mcap",
141 "$(location :log_to_mcap)",
142 "--mcap",
143 "$(location @com_github_foxglove_mcap_mcap//file)",
144 "--generate_log",
145 "$(location :generate_test_log)",
146 ],
147 data = [
148 ":generate_test_log",
149 ":log_to_mcap",
150 "@com_github_foxglove_mcap_mcap//file",
151 ],
152 target_compatible_with = ["@platforms//cpu:x86_64"],
153)
154
James Kuszmaul4ed5fb12022-03-22 15:20:04 -0700155cc_test(
156 name = "mcap_logger_test",
157 srcs = ["mcap_logger_test.cc"],
158 target_compatible_with = ["@platforms//os:linux"],
159 deps = [
160 ":mcap_logger",
161 "//aos/testing:googletest",
162 "@com_github_nlohmann_json//:json",
163 ],
164)
165
Brian Silverman100534c2015-09-07 15:51:23 -0400166cc_library(
James Kuszmaul0af658b2019-01-25 18:36:29 -0800167 name = "math",
168 hdrs = ["math.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800169 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul0af658b2019-01-25 18:36:29 -0800170 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700171 "@org_tuxfamily_eigen//:eigen",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800172 ],
173)
174
175cc_test(
176 name = "math_test",
177 srcs = ["math_test.cc"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800178 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul0af658b2019-01-25 18:36:29 -0800179 deps = [
180 ":math",
181 "//aos/testing:googletest",
182 ],
183)
184
185cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700186 name = "death_test_log_implementation",
187 hdrs = [
188 "death_test_log_implementation.h",
189 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800190 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700191 deps = [
John Park33858a32018-09-28 23:05:48 -0700192 "//aos/logging:implementations",
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 = "phased_loop",
198 srcs = [
199 "phased_loop.cc",
200 ],
201 hdrs = [
202 "phased_loop.h",
203 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800204 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700205 deps = [
James Kuszmaul0af658b2019-01-25 18:36:29 -0800206 "//aos/time",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700207 "@com_github_google_glog//:glog",
Brian Silverman6470f442018-08-05 12:08:16 -0700208 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400209)
210
211cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700212 name = "log_interval",
213 hdrs = [
214 "log_interval.h",
215 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800216 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700217 deps = [
John Park33858a32018-09-28 23:05:48 -0700218 "//aos/logging",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800219 "//aos/time",
Brian Silverman6470f442018-08-05 12:08:16 -0700220 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400221)
222
223cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700224 name = "trapezoid_profile",
225 srcs = [
226 "trapezoid_profile.cc",
227 ],
228 hdrs = [
229 "trapezoid_profile.h",
230 ],
231 linkopts = [
232 "-lm",
233 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800234 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700235 deps = [
John Park33858a32018-09-28 23:05:48 -0700236 "//aos/logging",
James Kuszmaul0af658b2019-01-25 18:36:29 -0800237 "//aos/time",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700238 "@org_tuxfamily_eigen//:eigen",
Brian Silverman6470f442018-08-05 12:08:16 -0700239 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400240)
241
242cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700243 name = "trapezoid_profile_test",
244 srcs = [
245 "trapezoid_profile_test.cc",
246 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800247 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700248 deps = [
249 ":trapezoid_profile",
250 "//aos/testing:googletest",
251 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400252)
253
254cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700255 name = "wrapping_counter",
256 srcs = [
257 "wrapping_counter.cc",
258 ],
259 hdrs = [
260 "wrapping_counter.h",
261 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800262 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman100534c2015-09-07 15:51:23 -0400263)
264
265cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700266 name = "wrapping_counter_test",
267 srcs = [
268 "wrapping_counter_test.cc",
269 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800270 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700271 deps = [
272 ":wrapping_counter",
273 "//aos/testing:googletest",
274 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400275)
276
Austin Schuh044e18b2015-10-21 20:17:09 -0700277cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700278 name = "options",
279 hdrs = [
280 "options.h",
281 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800282 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh044e18b2015-10-21 20:17:09 -0700283)
284
Brian Silverman100534c2015-09-07 15:51:23 -0400285cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700286 name = "options_test",
287 srcs = [
288 "options_test.cc",
289 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800290 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700291 deps = [
292 ":options",
293 "//aos/testing:googletest",
294 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400295)
Brian Silverman3d37a5f2014-09-05 18:42:20 -0400296
297cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700298 name = "compiler_memory_barrier",
299 hdrs = [
300 "compiler_memory_barrier.h",
301 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800302 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman3d37a5f2014-09-05 18:42:20 -0400303)
Brian Silverman521e6ba2014-09-04 13:37:46 -0400304
305cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700306 name = "global_factory",
307 hdrs = [
308 "global_factory.h",
309 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800310 target_compatible_with = ["@platforms//os:linux"],
Parker Schuh36416692017-02-18 17:34:15 -0800311)
312
313cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700314 name = "global_factory_test",
315 srcs = [
316 "global_factory_test.cc",
317 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800318 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700319 deps = [
320 ":global_factory",
321 "//aos/testing:googletest",
322 ],
Parker Schuh36416692017-02-18 17:34:15 -0800323)
324
Brian Silvermandcaa3f72015-11-29 05:32:08 +0000325cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700326 name = "phased_loop_test",
327 srcs = [
328 "phased_loop_test.cc",
329 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800330 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700331 deps = [
332 ":phased_loop",
333 "//aos/testing:googletest",
Brian Silverman8babd8f2020-06-23 16:38:50 -0700334 "//aos/time",
Brian Silverman6470f442018-08-05 12:08:16 -0700335 ],
Brian Silvermandcaa3f72015-11-29 05:32:08 +0000336)
Brian Silverman61175fb2016-03-13 15:35:56 -0400337
338cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -0700339 name = "file",
340 srcs = [
341 "file.cc",
342 ],
343 hdrs = [
344 "file.h",
345 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800346 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700347 deps = [
John Park33858a32018-09-28 23:05:48 -0700348 "//aos/scoped:scoped_fd",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700349 "@com_github_google_glog//:glog",
Austin Schuhcb108412019-10-13 16:09:54 -0700350 "@com_google_absl//absl/strings",
davidjevans8b9b52f2021-09-17 08:57:30 -0700351 "@com_google_absl//absl/types:span",
Brian Silverman6470f442018-08-05 12:08:16 -0700352 ],
Brian Silverman61175fb2016-03-13 15:35:56 -0400353)
354
355cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -0700356 name = "file_test",
357 size = "small",
358 srcs = [
359 "file_test.cc",
360 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800361 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700362 deps = [
363 ":file",
James Kuszmaul0625b0d2022-09-21 11:38:48 -0700364 "//aos:realtime",
Brian Silverman6470f442018-08-05 12:08:16 -0700365 "//aos/testing:googletest",
James Kuszmaulfd43f4e2022-12-16 15:19:35 -0800366 "//aos/testing:tmpdir",
Brian Silverman6470f442018-08-05 12:08:16 -0700367 ],
368)
369
James Kuszmaul418fd062022-03-22 15:22:27 -0700370flatbuffer_cc_library(
371 name = "process_info_fbs",
372 srcs = ["process_info.fbs"],
373 gen_reflections = True,
374 target_compatible_with = ["@platforms//os:linux"],
375 visibility = ["//visibility:public"],
376)
377
378cc_library(
379 name = "top",
380 srcs = ["top.cc"],
381 hdrs = ["top.h"],
382 target_compatible_with = ["@platforms//os:linux"],
383 deps = [
384 ":process_info_fbs",
385 "//aos/containers:ring_buffer",
386 "//aos/events:event_loop",
387 "@com_github_google_glog//:glog",
388 "@com_google_absl//absl/strings",
389 ],
390)
391
392cc_test(
393 name = "top_test",
394 srcs = ["top_test.cc"],
395 data = [
396 "//aos/events:pingpong_config",
397 ],
398 flaky = True,
399 target_compatible_with = ["@platforms//os:linux"],
400 deps = [
401 ":top",
402 "//aos/events:shm_event_loop",
403 "//aos/testing:googletest",
404 "//aos/testing:path",
405 "//aos/testing:tmpdir",
406 ],
407)
408
James Kuszmaul731a05d2022-01-07 17:59:26 -0800409cc_library(
410 name = "scoped_pipe",
411 srcs = ["scoped_pipe.cc"],
412 hdrs = ["scoped_pipe.h"],
413 target_compatible_with = ["@platforms//os:linux"],
414 deps = [
415 "@com_github_google_glog//:glog",
416 "@com_google_absl//absl/types:span",
417 ],
418)
419
420cc_test(
421 name = "scoped_pipe_test",
422 srcs = ["scoped_pipe_test.cc"],
423 target_compatible_with = ["@platforms//os:linux"],
424 deps = [
425 ":scoped_pipe",
426 "//aos/testing:googletest",
427 ],
428)
429
Ravago Jonese12b7902022-02-04 22:50:44 -0800430cc_library(
431 name = "crc32",
432 srcs = ["crc32.cc"],
433 hdrs = ["crc32.h"],
434 deps = [
435 "@com_google_absl//absl/types:span",
436 ],
437)
438
Brian Silverman6470f442018-08-05 12:08:16 -0700439py_library(
440 name = "python_init",
441 srcs = ["__init__.py"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800442 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman6470f442018-08-05 12:08:16 -0700443 visibility = ["//visibility:public"],
John Park33858a32018-09-28 23:05:48 -0700444 deps = ["//aos:python_init"],
Brian Silverman61175fb2016-03-13 15:35:56 -0400445)
James Kuszmaule5deaa42022-06-24 16:29:31 -0700446
447cc_library(
448 name = "threaded_queue",
449 hdrs = [
450 "threaded_queue.h",
451 "threaded_queue_tmpl.h",
452 ],
453 deps = [
454 "//aos:condition",
455 "//aos/mutex",
456 ],
457)
458
459cc_test(
460 name = "threaded_queue_test",
461 srcs = ["threaded_queue_test.cc"],
462 deps = [
463 ":threaded_queue",
464 "//aos/testing:googletest",
465 ],
466)
Milo Lin0ddb7782022-08-17 20:40:43 -0700467
James Kuszmaul0de4feb2022-04-15 12:16:59 -0700468cc_library(
Ravago Jonesc6b919f2023-01-01 21:34:12 -0800469 name = "threaded_consumer",
470 hdrs = [
471 "threaded_consumer.h",
472 ],
473 deps = [
474 "//aos:condition",
475 "//aos:realtime",
476 "//aos/containers:ring_buffer",
477 "//aos/mutex",
478 ],
479)
480
481cc_test(
482 name = "threaded_consumer_test",
483 srcs = ["threaded_consumer_test.cc"],
484 deps = [
485 ":threaded_consumer",
486 "//aos/testing:googletest",
487 ],
488)
489
490cc_library(
James Kuszmaul0de4feb2022-04-15 12:16:59 -0700491 name = "foxglove_websocket_lib",
492 srcs = ["foxglove_websocket_lib.cc"],
493 hdrs = ["foxglove_websocket_lib.h"],
494 deps = [
495 ":mcap_logger",
496 "//aos/events:event_loop",
497 "@com_github_foxglove_ws-protocol",
498 ],
499)
500
Milo Lin0ddb7782022-08-17 20:40:43 -0700501cc_binary(
502 name = "config_validator",
503 testonly = True,
504 srcs = ["config_validator.cc"],
505 target_compatible_with = ["@platforms//os:linux"],
506 deps = [
507 "//aos:init",
508 "//aos:json_to_flatbuffer",
509 "//aos/events:simulated_event_loop",
510 "//aos/events/logging:log_reader",
511 "//aos/events/logging:log_writer",
512 "//aos/testing:googletest",
513 "@com_github_gflags_gflags//:gflags",
514 "@com_github_google_glog//:glog",
515 "@com_google_googletest//:gtest",
516 ],
517)
James Kuszmaul0de4feb2022-04-15 12:16:59 -0700518
519cc_binary(
520 name = "foxglove_websocket",
521 srcs = ["foxglove_websocket.cc"],
522 visibility = ["//visibility:public"],
523 deps = [
524 ":foxglove_websocket_lib",
525 "//aos:init",
526 "//aos/events:shm_event_loop",
527 "@com_github_gflags_gflags//:gflags",
528 ],
529)