blob: c4d472b558116dcf679a4c389105c51abae7a99a [file] [log] [blame]
load("@com_google_protobuf//:protobuf.bzl", "cc_proto_library")
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
load("//tools/build_rules:gtk_dependent.bzl", "gtk_dependent_cc_binary", "gtk_dependent_cc_library")
flatbuffer_cc_library(
name = "vision_fbs",
srcs = [
"vision.fbs",
],
gen_reflections = 1,
visibility = ["//visibility:public"],
)
cc_proto_library(
name = "vision_data",
srcs = ["vision_data.proto"],
)
cc_proto_library(
name = "calibration",
srcs = ["calibration.proto"],
)
_calibration_values_embedded_before = """
#include "y2016/vision/stereo_geometry.h"
#include <string>
#include "external/com_google_protobuf/src/google/protobuf/text_format.h"
namespace y2016 {
namespace vision {
namespace {
const ::std::string kEmbeddedContents ="""
_calibration_values_embedded_after = """;
} // namespace
CalibrationFile EmbeddedCalibrationFile() {
CalibrationFile r;
::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
return r;
}
} // namespace vision
} // namespace y2016"""
genrule(
name = "embed_calibration_pb",
srcs = [
"calibration.pb",
],
outs = [
"stereo_geometry_embedded.cc",
],
cmd = "\n".join([
"echo '%s' > $@" % _calibration_values_embedded_before,
"cat $(location :calibration.pb) | sed 's/\"/\\\\\"/g ; s/^/\"/g ; s/$$/\\\\n\"/g' >> $@",
"echo '%s' >> $@" % _calibration_values_embedded_after,
]),
)
cc_library(
name = "stereo_geometry",
srcs = [
"stereo_geometry.cc",
"stereo_geometry_embedded.cc",
],
hdrs = [
"stereo_geometry.h",
],
deps = [
":calibration",
"//aos/logging",
"//aos/vision/math:vector",
],
)
cc_binary(
name = "target_sender",
srcs = ["target_sender.cc"],
restricted_to = [
"//tools:k8",
"//tools:armhf-debian",
],
deps = [
":calibration",
":stereo_geometry",
":vision_data",
"//aos/logging",
"//aos/logging:implementations",
"//aos/time",
"//aos/vision/events:epoll_events",
"//aos/vision/events:socket_types",
"//aos/vision/events:udp",
"//aos/vision/image:image_stream",
"//aos/vision/image:jpeg_routines",
"//aos/vision/image:reader",
"//y2016/vision:blob_filters",
],
)
cc_library(
name = "blob_filters",
srcs = ["blob_filters.cc"],
hdrs = ["blob_filters.h"],
restricted_to = [
"//tools:k8",
"//tools:armhf-debian",
],
visibility = ["//visibility:public"],
deps = [
"//aos/vision/blob:codec",
"//aos/vision/blob:find_blob",
"//aos/vision/blob:hierarchical_contour_merge",
"//aos/vision/blob:range_image",
"//aos/vision/blob:threshold",
"//aos/vision/math:segment",
"//aos/vision/math:vector",
],
)
cc_binary(
name = "target_receiver",
srcs = [
"target_receiver.cc",
],
visibility = ["//visibility:public"],
deps = [
":stereo_geometry",
":vision_data",
":vision_fbs",
"//aos:init",
"//aos/events:shm_event_loop",
"//aos/logging",
"//aos/mutex",
"//aos/time",
"//aos/vision/events:udp",
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops/drivetrain:drivetrain_status_fbs",
"//y2016:constants",
],
)
gtk_dependent_cc_binary(
name = "debug_receiver",
srcs = ["debug_receiver.cc"],
restricted_to = [
"//tools:k8",
"//tools:armhf-debian",
],
visibility = ["//visibility:public"],
deps = [
":blob_filters",
":calibration",
":stereo_geometry",
":vision_data",
"//aos/vision/blob:codec",
"//aos/vision/blob:range_image",
"//aos/vision/blob:stream_view",
"//aos/vision/debug:debug_window",
"//aos/vision/events:epoll_events",
"//aos/vision/events:gtk_event",
"//aos/vision/events:socket_types",
"//aos/vision/events:tcp_client",
"//aos/vision/image:image_types",
"//aos/vision/image:jpeg_routines",
],
)