blob: fca0258ffd695c80d70d4d9e669191b4741ce6dc [file] [log] [blame]
John Park33858a32018-09-28 23:05:48 -07001load("//tools:environments.bzl", "mcu_cpus")
2load("//aos/build:queues.bzl", "queue_library")
Austin Schuh972e47e2018-12-20 17:20:58 -08003
Brian Silverman258b9172015-09-19 14:32:57 -04004filegroup(
Brian Silverman6470f442018-08-05 12:08:16 -07005 name = "prime_binaries",
6 srcs = [
Austin Schuh972e47e2018-12-20 17:20:58 -08007 "//aos:core",
John Park33858a32018-09-28 23:05:48 -07008 "//aos/logging:log_displayer",
9 "//aos/logging:log_streamer",
John Park398c74a2018-10-20 21:17:39 -070010 "//aos/starter",
Brian Silverman6470f442018-08-05 12:08:16 -070011 ],
12 visibility = ["//visibility:public"],
Austin Schuh1eceeb92015-11-08 21:16:06 -080013)
Austin Schuhc80dd152016-02-29 01:47:44 -080014
15filegroup(
Brian Silverman6470f442018-08-05 12:08:16 -070016 name = "prime_start_binaries",
17 srcs = [
John Park33858a32018-09-28 23:05:48 -070018 "//aos/logging:binary_log_writer",
Brian Silverman6470f442018-08-05 12:08:16 -070019 ],
20 visibility = ["//visibility:public"],
Austin Schuhc80dd152016-02-29 01:47:44 -080021)
Brian Silverman6470f442018-08-05 12:08:16 -070022
Austin Schuhc80dd152016-02-29 01:47:44 -080023filegroup(
Brian Silverman6470f442018-08-05 12:08:16 -070024 name = "prime_binaries_stripped",
25 srcs = [
26 # starter is hard coded to look for a non-stripped core...
John Park398c74a2018-10-20 21:17:39 -070027 "//aos:core",
John Park33858a32018-09-28 23:05:48 -070028 "//aos/logging:log_streamer.stripped",
29 "//aos/logging:log_displayer.stripped",
John Park398c74a2018-10-20 21:17:39 -070030 "//aos/starter",
Brian Silverman6470f442018-08-05 12:08:16 -070031 ],
32 visibility = ["//visibility:public"],
33)
34
35filegroup(
36 name = "prime_start_binaries_stripped",
37 srcs = [
John Park33858a32018-09-28 23:05:48 -070038 "//aos/logging:binary_log_writer.stripped",
Brian Silverman6470f442018-08-05 12:08:16 -070039 ],
40 visibility = ["//visibility:public"],
Austin Schuhc80dd152016-02-29 01:47:44 -080041)
Sabina Davis2ed5ea22017-09-26 22:27:42 -070042
43cc_library(
John Park33858a32018-09-28 23:05:48 -070044 name = "math",
45 hdrs = [
46 "commonmath.h",
47 ],
48 compatible_with = mcu_cpus,
49 visibility = ["//visibility:public"],
50)
51
52cc_library(
Brian Silverman6470f442018-08-05 12:08:16 -070053 name = "once",
54 srcs = [
55 "once-tmpl.h",
56 ],
57 hdrs = [
58 "once.h",
59 ],
60 visibility = ["//visibility:public"],
61 deps = [
John Park33858a32018-09-28 23:05:48 -070062 "//aos:gtest_prod",
Austin Schuh972e47e2018-12-20 17:20:58 -080063 "//aos/type_traits",
Brian Silverman6470f442018-08-05 12:08:16 -070064 ],
Sabina Davis2ed5ea22017-09-26 22:27:42 -070065)
Brian Silverman6470f442018-08-05 12:08:16 -070066
John Park33858a32018-09-28 23:05:48 -070067cc_library(
68 name = "byteorder",
69 hdrs = [
70 "byteorder.h",
71 ],
John Park33858a32018-09-28 23:05:48 -070072 visibility = ["//visibility:public"],
73)
74
Sabina Davis2ed5ea22017-09-26 22:27:42 -070075cc_test(
Brian Silverman6470f442018-08-05 12:08:16 -070076 name = "once_test",
77 srcs = [
78 "once_test.cc",
79 ],
80 visibility = ["//visibility:public"],
81 deps = [
82 "//aos:once",
83 "//aos/testing:googletest",
84 ],
85)
86
87py_library(
88 name = "python_init",
89 srcs = ["__init__.py"],
90 visibility = ["//visibility:public"],
Sabina Davis2ed5ea22017-09-26 22:27:42 -070091)
John Park33858a32018-09-28 23:05:48 -070092
93cc_library(
Austin Schuh972e47e2018-12-20 17:20:58 -080094 name = "macros",
95 hdrs = [
John Park33858a32018-09-28 23:05:48 -070096 "macros.h",
John Park33858a32018-09-28 23:05:48 -070097 ],
Austin Schuh972e47e2018-12-20 17:20:58 -080098 compatible_with = mcu_cpus,
John Park33858a32018-09-28 23:05:48 -070099 visibility = ["//visibility:public"],
100)
101
102cc_library(
103 name = "gtest_prod",
104 hdrs = [
105 "gtest_prod.h",
106 ],
John Park33858a32018-09-28 23:05:48 -0700107 visibility = ["//visibility:public"],
108)
109
110cc_library(
111 name = "network_port",
112 hdrs = [
113 "network_port.h",
114 ],
115 visibility = ["//visibility:public"],
116)
117
118genrule(
119 name = "gen_print_field",
120 outs = ["print_field.cc"],
121 cmd = "$(location //aos/build/queues:print_field) $@",
John Park33858a32018-09-28 23:05:48 -0700122 tools = ["//aos/build/queues:print_field"],
123 visibility = ["//visibility:private"],
124)
125
126cc_library(
127 name = "queue_types",
128 srcs = [
129 "print_field_helpers.h",
130 "queue_types.cc",
131 ":gen_print_field",
132 ],
133 hdrs = [
134 "queue_types.h",
135 ],
Austin Schuh972e47e2018-12-20 17:20:58 -0800136 visibility = ["//visibility:public"],
John Park33858a32018-09-28 23:05:48 -0700137 deps = [
John Park33858a32018-09-28 23:05:48 -0700138 ":generated_queue_headers",
Austin Schuh972e47e2018-12-20 17:20:58 -0800139 "//aos:byteorder",
John Park398c74a2018-10-20 21:17:39 -0700140 "//aos/ipc_lib:core_lib",
141 "//aos/ipc_lib:shared_mem",
Austin Schuh972e47e2018-12-20 17:20:58 -0800142 "//aos/logging:printf_formats",
143 "//aos/mutex",
144 "//aos/time",
John Park33858a32018-09-28 23:05:48 -0700145 ],
John Park33858a32018-09-28 23:05:48 -0700146)
147
148cc_test(
149 name = "queue_types_test",
150 srcs = [
151 "queue_types_test.cc",
152 ],
153 deps = [
154 ":queue_types",
155 ":test_queue",
156 "//aos/logging",
157 "//aos/testing:googletest",
158 "//aos/testing:test_logging",
159 ],
160)
161
162cc_library(
163 name = "queues",
164 hdrs = [
165 "queue.h",
166 ],
Austin Schuh972e47e2018-12-20 17:20:58 -0800167 visibility = ["//visibility:public"],
John Park33858a32018-09-28 23:05:48 -0700168 deps = [
John Park398c74a2018-10-20 21:17:39 -0700169 "//aos:queue",
170 "//aos/ipc_lib:queue",
Austin Schuh972e47e2018-12-20 17:20:58 -0800171 "//aos/messages",
John Park33858a32018-09-28 23:05:48 -0700172 ],
John Park33858a32018-09-28 23:05:48 -0700173)
174
175queue_library(
176 name = "test_queue",
177 srcs = [
178 "test_queue.q",
179 ],
180)
181
182genrule(
183 name = "gen_queue_primitives",
184 outs = ["queue_primitives.h"],
185 cmd = "$(location //aos/build/queues:queue_primitives) $@",
John Park33858a32018-09-28 23:05:48 -0700186 tools = ["//aos/build/queues:queue_primitives"],
187 visibility = ["//visibility:private"],
188)
189
190cc_library(
191 name = "generated_queue_headers",
192 hdrs = [
193 ":gen_queue_primitives",
194 ],
John Park33858a32018-09-28 23:05:48 -0700195 visibility = ["//aos/logging:__pkg__"],
196)
197
198cc_test(
199 name = "queue_test",
200 srcs = [
201 "queue_test.cc",
202 ],
203 deps = [
John Park33858a32018-09-28 23:05:48 -0700204 ":test_queue",
Austin Schuh972e47e2018-12-20 17:20:58 -0800205 "//aos:die",
John Park33858a32018-09-28 23:05:48 -0700206 "//aos/testing:googletest",
207 "//aos/testing:test_shm",
Austin Schuh972e47e2018-12-20 17:20:58 -0800208 "//aos/util:thread",
John Park33858a32018-09-28 23:05:48 -0700209 ],
210)
211
212cc_library(
213 name = "unique_malloc_ptr",
214 hdrs = [
215 "unique_malloc_ptr.h",
216 ],
John Park33858a32018-09-28 23:05:48 -0700217 visibility = ["//visibility:public"],
218)
219
220cc_library(
221 name = "condition",
222 srcs = [
223 "condition.cc",
224 ],
225 hdrs = [
226 "condition.h",
227 ],
John Park33858a32018-09-28 23:05:48 -0700228 visibility = ["//visibility:public"],
Austin Schuh972e47e2018-12-20 17:20:58 -0800229 deps = [
230 "//aos/ipc_lib:aos_sync",
231 "//aos/logging",
232 "//aos/mutex",
233 ],
John Park33858a32018-09-28 23:05:48 -0700234)
235
236cc_test(
237 name = "condition_test",
238 srcs = [
239 "condition_test.cc",
240 ],
241 deps = [
242 ":condition",
243 "//aos:die",
John Park398c74a2018-10-20 21:17:39 -0700244 "//aos/ipc_lib:aos_sync",
245 "//aos/ipc_lib:core_lib",
Austin Schuh972e47e2018-12-20 17:20:58 -0800246 "//aos/logging",
247 "//aos/mutex",
John Park33858a32018-09-28 23:05:48 -0700248 "//aos/testing:googletest",
249 "//aos/testing:prevent_exit",
250 "//aos/testing:test_shm",
Austin Schuh972e47e2018-12-20 17:20:58 -0800251 "//aos/time",
252 "//aos/util:thread",
John Park33858a32018-09-28 23:05:48 -0700253 ],
254)
255
256cc_library(
257 name = "die",
258 srcs = [
259 "die.cc",
260 ],
261 hdrs = [
262 "die.h",
263 ],
Austin Schuh972e47e2018-12-20 17:20:58 -0800264 visibility = ["//visibility:public"],
John Park33858a32018-09-28 23:05:48 -0700265 deps = [
266 "//aos:macros",
267 "//aos/libc:aos_strerror",
268 ],
John Park33858a32018-09-28 23:05:48 -0700269)
270
John Park33858a32018-09-28 23:05:48 -0700271cc_test(
272 name = "die_test",
273 srcs = [
274 "die_test.cc",
275 ],
276 deps = [
277 ":die",
278 "//aos/testing:googletest",
279 ],
280)
281
282cc_library(
283 name = "event",
284 srcs = [
285 "event.cc",
286 ],
287 hdrs = [
288 "event.h",
289 ],
John Park33858a32018-09-28 23:05:48 -0700290 visibility = ["//visibility:public"],
Austin Schuh972e47e2018-12-20 17:20:58 -0800291 deps = [
292 "//aos/ipc_lib:aos_sync",
293 "//aos/logging",
294 "//aos/time",
295 ],
John Park33858a32018-09-28 23:05:48 -0700296)
297
298cc_test(
299 name = "event_test",
300 srcs = [
301 "event_test.cc",
Austin Schuh972e47e2018-12-20 17:20:58 -0800302 ],
John Park33858a32018-09-28 23:05:48 -0700303 deps = [
304 ":event",
John Park33858a32018-09-28 23:05:48 -0700305 "//aos/testing:googletest",
306 "//aos/testing:test_logging",
Austin Schuh972e47e2018-12-20 17:20:58 -0800307 "//aos/time",
John Park33858a32018-09-28 23:05:48 -0700308 ],
309)
John Park398c74a2018-10-20 21:17:39 -0700310
311cc_binary(
312 name = "dump_rtprio",
313 srcs = [
314 "dump_rtprio.cc",
315 ],
316 deps = [
John Park398c74a2018-10-20 21:17:39 -0700317 "//aos/logging",
318 "//aos/logging:implementations",
Austin Schuh972e47e2018-12-20 17:20:58 -0800319 "//aos/time",
John Park398c74a2018-10-20 21:17:39 -0700320 ],
321)
322
323cc_library(
324 name = "queue",
325 hdrs = [
326 "queue-tmpl.h",
327 ],
John Park398c74a2018-10-20 21:17:39 -0700328 visibility = ["//aos:__pkg__"],
329)
330
331cc_library(
332 name = "complex_thread_local",
333 srcs = [
334 "complex_thread_local.cc",
335 ],
336 hdrs = [
337 "complex_thread_local.h",
338 ],
John Park398c74a2018-10-20 21:17:39 -0700339 linkopts = [
340 "-lpthread",
341 ],
John Park398c74a2018-10-20 21:17:39 -0700342 visibility = ["//visibility:public"],
Austin Schuh972e47e2018-12-20 17:20:58 -0800343 deps = [
344 "//aos:die",
345 "//aos:once",
346 ],
John Park398c74a2018-10-20 21:17:39 -0700347)
348
349cc_test(
350 name = "complex_thread_local_test",
351 srcs = [
352 "complex_thread_local_test.cc",
353 ],
354 deps = [
355 ":complex_thread_local",
356 "//aos/logging",
John Park398c74a2018-10-20 21:17:39 -0700357 "//aos/testing:googletest",
Austin Schuh972e47e2018-12-20 17:20:58 -0800358 "//aos/util:thread",
John Park398c74a2018-10-20 21:17:39 -0700359 ],
360)
361
362cc_library(
363 name = "init",
364 srcs = [
365 "init.cc",
366 ],
367 hdrs = [
368 "init.h",
369 ],
Austin Schuh972e47e2018-12-20 17:20:58 -0800370 visibility = ["//visibility:public"],
John Park398c74a2018-10-20 21:17:39 -0700371 deps = [
372 "//aos:die",
John Park398c74a2018-10-20 21:17:39 -0700373 "//aos/ipc_lib:shared_mem",
Austin Schuh972e47e2018-12-20 17:20:58 -0800374 "//aos/logging:implementations",
John Park398c74a2018-10-20 21:17:39 -0700375 ],
John Park398c74a2018-10-20 21:17:39 -0700376)
377
378cc_library(
379 name = "configuration",
380 srcs = [
381 "configuration.cc",
382 ],
383 hdrs = [
384 "configuration.h",
385 ],
Austin Schuh972e47e2018-12-20 17:20:58 -0800386 visibility = ["//visibility:public"],
John Park398c74a2018-10-20 21:17:39 -0700387 deps = [
388 "//aos:once",
389 "//aos:unique_malloc_ptr",
390 "//aos/logging",
391 ],
John Park398c74a2018-10-20 21:17:39 -0700392)
393
394cc_binary(
395 name = "core",
396 srcs = [
397 "core.cc",
398 ],
399 deps = [
400 ":init",
401 "//aos/util:run_command",
402 ],
403)