blob: a7d7e029213b50702a683a657723194a2e8e9ca5 [file] [log] [blame]
load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
load("//aos:config.bzl", "aos_config")
exports_files(["roborio_irq_config.json"])
# This target is everything which should get deployed to the robot.
filegroup(
name = "starter",
srcs = [
"aos_starter",
"starter.sh",
"starterd.stripped",
],
visibility = ["//visibility:public"],
)
filegroup(
name = "starter_stripped",
srcs = [
"aos_starter.stripped",
"starter.sh",
"starterd.stripped",
],
visibility = ["//visibility:public"],
)
cc_library(
name = "subprocess",
srcs = ["subprocess.cc"],
hdrs = ["subprocess.h"],
visibility = ["//visibility:public"],
deps = [
":starter_fbs",
":starter_rpc_fbs",
"//aos/events:event_loop",
"//aos/events:shm_event_loop",
"//aos/util:scoped_pipe",
"//aos/util:top",
"@com_github_google_glog//:glog",
],
)
cc_library(
name = "starterd_lib",
srcs = ["starterd_lib.cc"],
hdrs = ["starterd_lib.h"],
target_compatible_with = ["@platforms//os:linux"],
deps = [
":starter_fbs",
":starter_rpc_fbs",
":subprocess",
"//aos:configuration",
"//aos:macros",
"//aos/events:shm_event_loop",
"@com_github_google_glog//:glog",
],
)
aos_config(
name = "multinode_pingpong_config",
src = "multinode_pingpong.json",
flatbuffers = [
"//aos/events:ping_fbs",
"//aos/events:pong_fbs",
":starter_rpc_fbs",
":starter_fbs",
"//aos/logging:log_message_fbs",
"//aos/events:event_loop_fbs",
"//aos/network:message_bridge_client_fbs",
"//aos/network:remote_message_fbs",
"//aos/network:timestamp_fbs",
"//aos/network:message_bridge_server_fbs",
],
target_compatible_with = ["@platforms//os:linux"],
)
cc_test(
name = "subprocess_test",
srcs = ["subprocess_test.cc"],
data = [
"//aos/events:pingpong_config",
],
flaky = True,
# The roborio compiler doesn't support <filesystem>.
target_compatible_with =
["@platforms//os:linux"],
deps = [
":subprocess",
"//aos/events:shm_event_loop",
"//aos/testing:googletest",
"//aos/testing:path",
"//aos/testing:tmpdir",
],
)
# Similar to subprocess_test, but here are all the tests that are not flaky.
cc_test(
name = "subprocess_reliable_test",
srcs = ["subprocess_reliable_test.cc"],
data = [
"//aos/events:pingpong_config",
],
# The roborio compiler doesn't support <filesystem>.
target_compatible_with = ["@platforms//os:linux"],
deps = [
":subprocess",
"//aos/events:shm_event_loop",
"//aos/testing:googletest",
"//aos/testing:path",
"//aos/testing:tmpdir",
],
)
cc_test(
name = "starter_test",
srcs = ["starter_test.cc"],
data = [
":multinode_pingpong_config",
"//aos/events:ping",
"//aos/events:pingpong_config",
"//aos/events:pong",
],
# TODO(james): Fix tihs.
flaky = True,
linkopts = ["-lstdc++fs"],
shard_count = 4,
# The roborio compiler doesn't support <filesystem>.
target_compatible_with =
select({
"//tools/platforms/hardware:roborio": ["@platforms//:incompatible"],
"//conditions:default": ["@platforms//os:linux"],
}),
deps = [
":starter_rpc_lib",
":starterd_lib",
"//aos/events:ping_fbs",
"//aos/events:pong_fbs",
"//aos/events:simulated_event_loop",
"//aos/ipc_lib:event",
"//aos/testing:googletest",
"//aos/testing:path",
"//aos/testing:tmpdir",
],
)
cc_binary(
name = "starterd",
srcs = ["starterd.cc"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = [
":starterd_lib",
"//aos:init",
],
)
cc_library(
name = "starter_rpc_lib",
srcs = ["starter_rpc_lib.cc"],
hdrs = ["starter_rpc_lib.h"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = [
":starter_fbs",
":starter_rpc_fbs",
":starterd_lib",
"//aos:configuration",
"//aos:init",
"//aos/events:shm_event_loop",
],
)
cc_binary(
name = "aos_starter",
srcs = ["starter_cmd.cc"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = [
":starter_rpc_lib",
"//aos/time",
"@com_github_google_glog//:glog",
"@com_google_absl//absl/strings:str_format",
],
)
static_flatbuffer(
name = "starter_fbs",
srcs = ["starter.fbs"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
deps = ["//aos/util:process_info_fbs"],
)
static_flatbuffer(
name = "kthread_fbs",
srcs = ["kthread.fbs"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
static_flatbuffer(
name = "starter_rpc_fbs",
srcs = ["starter_rpc.fbs"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
py_binary(
name = "starter_demo",
srcs = ["starter_demo.py"],
args = [
"$(rootpath :starterd)",
"\"$(rootpaths //aos/events:pingpong_config)\"",
"$(rootpath //aos/events:ping)",
"$(rootpath //aos/events:pong)",
"$(rootpath :aos_starter)",
"$(rootpath //aos:aos_dump)",
"$(rootpath //aos/events/logging:logger_main)",
"$(rootpath //aos/events:aos_timing_report_streamer)",
],
data = [
":aos_starter",
":starterd",
"//aos:aos_dump",
"//aos/events:aos_timing_report_streamer",
"//aos/events:ping",
"//aos/events:pingpong_config",
"//aos/events:pong",
"//aos/events/logging:logger_main",
],
)
cc_library(
name = "irq_affinity_lib",
srcs = ["irq_affinity_lib.cc"],
hdrs = ["irq_affinity_lib.h"],
deps = [
"//aos/scoped:scoped_fd",
"@com_github_google_glog//:glog",
"@com_google_absl//absl/strings",
],
)
cc_binary(
name = "irq_affinity",
srcs = [
"irq_affinity.cc",
],
visibility = ["//visibility:public"],
deps = [
":irq_affinity_lib",
":kthread_fbs",
"//aos:init",
"//aos:realtime",
"//aos/events:shm_event_loop",
"//aos/util:top",
],
)
cc_test(
name = "irq_affinity_lib_test",
srcs = ["irq_affinity_lib_test.cc"],
deps = [
":irq_affinity_lib",
"//aos/testing:googletest",
],
)
cc_library(
name = "mock_starter",
srcs = ["mock_starter.cc"],
hdrs = ["mock_starter.h"],
visibility = ["//visibility:public"],
deps = [
"//aos/events:simulated_event_loop",
"//aos/starter:starter_fbs",
"//aos/starter:starter_rpc_fbs",
"//aos/starter:starter_rpc_lib",
],
)