blob: 66245e9a29fbb5af2924952449d4a5739653bba5 [file] [log] [blame]
Brian Silverman2ccf8c52016-03-15 00:22:26 -04001load('/tools/build_rules/protobuf', 'proto_cc_library')
2load('/aos/build/queues', 'queue_library')
3
4queue_library(
5 name = 'vision_queue',
6 srcs = [
7 'vision.q',
8 ],
9)
10
11proto_cc_library(
12 name = 'vision_data',
13 src = 'vision_data.proto',
14)
15
16proto_cc_library(
17 name = 'calibration',
18 src = 'calibration.proto',
19)
20
21_calibration_values_embedded_before = '''
22#include "y2016/vision/stereo_geometry.h"
23
24#include <string>
25
26#include "third_party/protobuf/src/google/protobuf/text_format.h"
27
28namespace y2016 {
29namespace vision {
30namespace {
31
32const ::std::string kEmbeddedContents ='''
33
34_calibration_values_embedded_after = ''';
35
36} // namespace
37
38CalibrationFile EmbeddedCalibrationFile() {
39 CalibrationFile r;
40 ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
41 return r;
42}
43
44} // namespace vision
45} // namespace y2016'''
46
47genrule(
48 name = 'embed_calibration_pb',
49 srcs = [
50 'calibration.pb',
51 ],
52 outs = [
53 'stereo_geometry_embedded.cc',
54 ],
55 cmd = '\n'.join([
56 'echo \'%s\' > $@' % _calibration_values_embedded_before,
57 'cat $(location :calibration.pb) | sed \'s/"/\\\\"/g ; s/^/"/g ; s/$$/\\\\n"/g\' >> $@',
58 'echo \'%s\' >> $@' % _calibration_values_embedded_after,
59 ]),
60)
61
62cc_library(
63 name = 'stereo_geometry',
64 hdrs = [
65 'stereo_geometry.h',
66 ],
67 srcs = [
68 'stereo_geometry.cc',
69 'stereo_geometry_embedded.cc',
70 ],
71 deps = [
72 ':calibration',
73 '//aos/common/logging',
74 '//aos/vision/math:vector',
75 ],
76)
77
78cc_binary(
79 name = 'target_receiver',
80 srcs = [
81 'target_receiver.cc',
82 ],
83 deps = [
84 '//aos/common/logging',
85 '//aos/common/logging:queue_logging',
86 '//aos/linux_code:init',
87 '//aos/common:time',
88 '//aos/vision/events:udp',
89 ':vision_queue',
90 ':vision_data',
91 ':stereo_geometry',
92 '//y2016:constants',
93 ],
94)