Brian Silverman | 2ccf8c5 | 2016-03-15 00:22:26 -0400 | [diff] [blame^] | 1 | load('/tools/build_rules/protobuf', 'proto_cc_library') |
| 2 | load('/aos/build/queues', 'queue_library') |
| 3 | |
| 4 | queue_library( |
| 5 | name = 'vision_queue', |
| 6 | srcs = [ |
| 7 | 'vision.q', |
| 8 | ], |
| 9 | ) |
| 10 | |
| 11 | proto_cc_library( |
| 12 | name = 'vision_data', |
| 13 | src = 'vision_data.proto', |
| 14 | ) |
| 15 | |
| 16 | proto_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 | |
| 28 | namespace y2016 { |
| 29 | namespace vision { |
| 30 | namespace { |
| 31 | |
| 32 | const ::std::string kEmbeddedContents =''' |
| 33 | |
| 34 | _calibration_values_embedded_after = '''; |
| 35 | |
| 36 | } // namespace |
| 37 | |
| 38 | CalibrationFile EmbeddedCalibrationFile() { |
| 39 | CalibrationFile r; |
| 40 | ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r); |
| 41 | return r; |
| 42 | } |
| 43 | |
| 44 | } // namespace vision |
| 45 | } // namespace y2016''' |
| 46 | |
| 47 | genrule( |
| 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 | |
| 62 | cc_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 | |
| 78 | cc_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 | ) |