xref: /aosp_15_r20/external/openscreen/cast/streaming/BUILD.gn (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2019 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglardimport("//build_overrides/build.gni")
6*3f982cf4SFabien Sanglardimport("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni")
7*3f982cf4SFabien Sanglardimport("//third_party/protobuf/proto_library.gni")
8*3f982cf4SFabien Sanglardimport("../../testing/libfuzzer/fuzzer_test.gni")
9*3f982cf4SFabien Sanglard
10*3f982cf4SFabien Sanglardfuzzable_proto_library("remoting_proto") {
11*3f982cf4SFabien Sanglard  sources = [ "remoting.proto" ]
12*3f982cf4SFabien Sanglard}
13*3f982cf4SFabien Sanglard
14*3f982cf4SFabien Sanglardsource_set("streaming_configs") {
15*3f982cf4SFabien Sanglard  sources = [
16*3f982cf4SFabien Sanglard    "capture_configs.h",
17*3f982cf4SFabien Sanglard    "constants.h",
18*3f982cf4SFabien Sanglard    "message_fields.cc",
19*3f982cf4SFabien Sanglard    "message_fields.h",
20*3f982cf4SFabien Sanglard    "resolution.cc",
21*3f982cf4SFabien Sanglard    "resolution.h",
22*3f982cf4SFabien Sanglard  ]
23*3f982cf4SFabien Sanglard
24*3f982cf4SFabien Sanglard  public_configs = [ "../../build:openscreen_include_dirs" ]
25*3f982cf4SFabien Sanglard
26*3f982cf4SFabien Sanglard  public_deps = [
27*3f982cf4SFabien Sanglard    "../../third_party/abseil",
28*3f982cf4SFabien Sanglard    "../../third_party/jsoncpp",
29*3f982cf4SFabien Sanglard  ]
30*3f982cf4SFabien Sanglard
31*3f982cf4SFabien Sanglard  deps = [
32*3f982cf4SFabien Sanglard    "../../platform:base",
33*3f982cf4SFabien Sanglard    "../../util:base",
34*3f982cf4SFabien Sanglard  ]
35*3f982cf4SFabien Sanglard}
36*3f982cf4SFabien Sanglard
37*3f982cf4SFabien Sanglardsource_set("common") {
38*3f982cf4SFabien Sanglard  sources = [
39*3f982cf4SFabien Sanglard    "answer_messages.cc",
40*3f982cf4SFabien Sanglard    "answer_messages.h",
41*3f982cf4SFabien Sanglard    "capture_recommendations.cc",
42*3f982cf4SFabien Sanglard    "capture_recommendations.h",
43*3f982cf4SFabien Sanglard    "clock_drift_smoother.cc",
44*3f982cf4SFabien Sanglard    "clock_drift_smoother.h",
45*3f982cf4SFabien Sanglard    "encoded_frame.cc",
46*3f982cf4SFabien Sanglard    "encoded_frame.h",
47*3f982cf4SFabien Sanglard    "environment.cc",
48*3f982cf4SFabien Sanglard    "environment.h",
49*3f982cf4SFabien Sanglard    "expanded_value_base.h",
50*3f982cf4SFabien Sanglard    "frame_crypto.cc",
51*3f982cf4SFabien Sanglard    "frame_crypto.h",
52*3f982cf4SFabien Sanglard    "frame_id.cc",
53*3f982cf4SFabien Sanglard    "frame_id.h",
54*3f982cf4SFabien Sanglard    "ntp_time.cc",
55*3f982cf4SFabien Sanglard    "ntp_time.h",
56*3f982cf4SFabien Sanglard    "offer_messages.cc",
57*3f982cf4SFabien Sanglard    "offer_messages.h",
58*3f982cf4SFabien Sanglard    "packet_util.cc",
59*3f982cf4SFabien Sanglard    "packet_util.h",
60*3f982cf4SFabien Sanglard    "receiver_message.cc",
61*3f982cf4SFabien Sanglard    "receiver_message.h",
62*3f982cf4SFabien Sanglard    "rpc_messenger.cc",
63*3f982cf4SFabien Sanglard    "rpc_messenger.h",
64*3f982cf4SFabien Sanglard    "rtcp_common.cc",
65*3f982cf4SFabien Sanglard    "rtcp_common.h",
66*3f982cf4SFabien Sanglard    "rtcp_session.cc",
67*3f982cf4SFabien Sanglard    "rtcp_session.h",
68*3f982cf4SFabien Sanglard    "rtp_defines.cc",
69*3f982cf4SFabien Sanglard    "rtp_defines.h",
70*3f982cf4SFabien Sanglard    "rtp_time.cc",
71*3f982cf4SFabien Sanglard    "rtp_time.h",
72*3f982cf4SFabien Sanglard    "sender_message.cc",
73*3f982cf4SFabien Sanglard    "sender_message.h",
74*3f982cf4SFabien Sanglard    "session_config.cc",
75*3f982cf4SFabien Sanglard    "session_config.h",
76*3f982cf4SFabien Sanglard    "session_messenger.cc",
77*3f982cf4SFabien Sanglard    "session_messenger.h",
78*3f982cf4SFabien Sanglard    "ssrc.cc",
79*3f982cf4SFabien Sanglard    "ssrc.h",
80*3f982cf4SFabien Sanglard  ]
81*3f982cf4SFabien Sanglard
82*3f982cf4SFabien Sanglard  public_configs = [ "../../build:openscreen_include_dirs" ]
83*3f982cf4SFabien Sanglard
84*3f982cf4SFabien Sanglard  public_deps = [
85*3f982cf4SFabien Sanglard    ":remoting_proto",
86*3f982cf4SFabien Sanglard    ":streaming_configs",
87*3f982cf4SFabien Sanglard    "../../third_party/abseil",
88*3f982cf4SFabien Sanglard    "../../third_party/boringssl",
89*3f982cf4SFabien Sanglard    "../common:channel",
90*3f982cf4SFabien Sanglard    "../common:public",
91*3f982cf4SFabien Sanglard    "../common/certificate/proto:certificate_proto",
92*3f982cf4SFabien Sanglard  ]
93*3f982cf4SFabien Sanglard
94*3f982cf4SFabien Sanglard  deps = [
95*3f982cf4SFabien Sanglard    "../../platform",
96*3f982cf4SFabien Sanglard    "../../util",
97*3f982cf4SFabien Sanglard  ]
98*3f982cf4SFabien Sanglard
99*3f982cf4SFabien Sanglard  if (!build_with_chromium) {
100*3f982cf4SFabien Sanglard    deps += [ "../protocol:castv2" ]
101*3f982cf4SFabien Sanglard  }
102*3f982cf4SFabien Sanglard}
103*3f982cf4SFabien Sanglard
104*3f982cf4SFabien Sanglardsource_set("receiver") {
105*3f982cf4SFabien Sanglard  sources = [
106*3f982cf4SFabien Sanglard    "compound_rtcp_builder.cc",
107*3f982cf4SFabien Sanglard    "compound_rtcp_builder.h",
108*3f982cf4SFabien Sanglard    "frame_collector.cc",
109*3f982cf4SFabien Sanglard    "frame_collector.h",
110*3f982cf4SFabien Sanglard    "packet_receive_stats_tracker.cc",
111*3f982cf4SFabien Sanglard    "packet_receive_stats_tracker.h",
112*3f982cf4SFabien Sanglard    "receiver.cc",
113*3f982cf4SFabien Sanglard    "receiver.h",
114*3f982cf4SFabien Sanglard    "receiver_base.cc",
115*3f982cf4SFabien Sanglard    "receiver_base.h",
116*3f982cf4SFabien Sanglard    "receiver_packet_router.cc",
117*3f982cf4SFabien Sanglard    "receiver_packet_router.h",
118*3f982cf4SFabien Sanglard    "receiver_session.cc",
119*3f982cf4SFabien Sanglard    "receiver_session.h",
120*3f982cf4SFabien Sanglard    "rtp_packet_parser.cc",
121*3f982cf4SFabien Sanglard    "rtp_packet_parser.h",
122*3f982cf4SFabien Sanglard    "sender_report_parser.cc",
123*3f982cf4SFabien Sanglard    "sender_report_parser.h",
124*3f982cf4SFabien Sanglard  ]
125*3f982cf4SFabien Sanglard
126*3f982cf4SFabien Sanglard  public_deps = [ ":common" ]
127*3f982cf4SFabien Sanglard
128*3f982cf4SFabien Sanglard  deps = [ "../../util" ]
129*3f982cf4SFabien Sanglard}
130*3f982cf4SFabien Sanglard
131*3f982cf4SFabien Sanglardsource_set("sender") {
132*3f982cf4SFabien Sanglard  sources = [
133*3f982cf4SFabien Sanglard    "bandwidth_estimator.cc",
134*3f982cf4SFabien Sanglard    "bandwidth_estimator.h",
135*3f982cf4SFabien Sanglard    "compound_rtcp_parser.cc",
136*3f982cf4SFabien Sanglard    "compound_rtcp_parser.h",
137*3f982cf4SFabien Sanglard    "remoting_capabilities.h",
138*3f982cf4SFabien Sanglard    "rtp_packetizer.cc",
139*3f982cf4SFabien Sanglard    "rtp_packetizer.h",
140*3f982cf4SFabien Sanglard    "sender.cc",
141*3f982cf4SFabien Sanglard    "sender.h",
142*3f982cf4SFabien Sanglard    "sender_packet_router.cc",
143*3f982cf4SFabien Sanglard    "sender_packet_router.h",
144*3f982cf4SFabien Sanglard    "sender_report_builder.cc",
145*3f982cf4SFabien Sanglard    "sender_report_builder.h",
146*3f982cf4SFabien Sanglard    "sender_session.cc",
147*3f982cf4SFabien Sanglard    "sender_session.h",
148*3f982cf4SFabien Sanglard  ]
149*3f982cf4SFabien Sanglard
150*3f982cf4SFabien Sanglard  public_deps = [ ":common" ]
151*3f982cf4SFabien Sanglard
152*3f982cf4SFabien Sanglard  deps = [ "../../util" ]
153*3f982cf4SFabien Sanglard}
154*3f982cf4SFabien Sanglard
155*3f982cf4SFabien Sanglardsource_set("test_helpers") {
156*3f982cf4SFabien Sanglard  testonly = true
157*3f982cf4SFabien Sanglard
158*3f982cf4SFabien Sanglard  sources = [
159*3f982cf4SFabien Sanglard    "testing/message_pipe.h",
160*3f982cf4SFabien Sanglard    "testing/simple_message_port.h",
161*3f982cf4SFabien Sanglard    "testing/simple_socket_subscriber.h",
162*3f982cf4SFabien Sanglard  ]
163*3f982cf4SFabien Sanglard
164*3f982cf4SFabien Sanglard  public_deps = [ ":common" ]
165*3f982cf4SFabien Sanglard
166*3f982cf4SFabien Sanglard  deps = [
167*3f982cf4SFabien Sanglard    "../../third_party/googletest:gmock",
168*3f982cf4SFabien Sanglard    "../../third_party/googletest:gtest",
169*3f982cf4SFabien Sanglard    "../../util",
170*3f982cf4SFabien Sanglard    "../common:public",
171*3f982cf4SFabien Sanglard  ]
172*3f982cf4SFabien Sanglard}
173*3f982cf4SFabien Sanglard
174*3f982cf4SFabien Sanglardsource_set("unittests") {
175*3f982cf4SFabien Sanglard  testonly = true
176*3f982cf4SFabien Sanglard
177*3f982cf4SFabien Sanglard  sources = [
178*3f982cf4SFabien Sanglard    "answer_messages_unittest.cc",
179*3f982cf4SFabien Sanglard    "bandwidth_estimator_unittest.cc",
180*3f982cf4SFabien Sanglard    "capture_recommendations_unittest.cc",
181*3f982cf4SFabien Sanglard    "compound_rtcp_builder_unittest.cc",
182*3f982cf4SFabien Sanglard    "compound_rtcp_parser_unittest.cc",
183*3f982cf4SFabien Sanglard    "expanded_value_base_unittest.cc",
184*3f982cf4SFabien Sanglard    "frame_collector_unittest.cc",
185*3f982cf4SFabien Sanglard    "frame_crypto_unittest.cc",
186*3f982cf4SFabien Sanglard    "message_fields_unittest.cc",
187*3f982cf4SFabien Sanglard    "mock_compound_rtcp_parser_client.h",
188*3f982cf4SFabien Sanglard    "mock_environment.cc",
189*3f982cf4SFabien Sanglard    "mock_environment.h",
190*3f982cf4SFabien Sanglard    "ntp_time_unittest.cc",
191*3f982cf4SFabien Sanglard    "offer_messages_unittest.cc",
192*3f982cf4SFabien Sanglard    "packet_receive_stats_tracker_unittest.cc",
193*3f982cf4SFabien Sanglard    "packet_util_unittest.cc",
194*3f982cf4SFabien Sanglard    "receiver_session_unittest.cc",
195*3f982cf4SFabien Sanglard    "receiver_unittest.cc",
196*3f982cf4SFabien Sanglard    "rpc_messenger_unittest.cc",
197*3f982cf4SFabien Sanglard    "rtcp_common_unittest.cc",
198*3f982cf4SFabien Sanglard    "rtp_packet_parser_unittest.cc",
199*3f982cf4SFabien Sanglard    "rtp_packetizer_unittest.cc",
200*3f982cf4SFabien Sanglard    "rtp_time_unittest.cc",
201*3f982cf4SFabien Sanglard    "sender_packet_router_unittest.cc",
202*3f982cf4SFabien Sanglard    "sender_report_unittest.cc",
203*3f982cf4SFabien Sanglard    "sender_session_unittest.cc",
204*3f982cf4SFabien Sanglard    "sender_unittest.cc",
205*3f982cf4SFabien Sanglard    "session_messenger_unittest.cc",
206*3f982cf4SFabien Sanglard    "ssrc_unittest.cc",
207*3f982cf4SFabien Sanglard  ]
208*3f982cf4SFabien Sanglard
209*3f982cf4SFabien Sanglard  deps = [
210*3f982cf4SFabien Sanglard    ":receiver",
211*3f982cf4SFabien Sanglard    ":sender",
212*3f982cf4SFabien Sanglard    ":test_helpers",
213*3f982cf4SFabien Sanglard    "../../platform:test",
214*3f982cf4SFabien Sanglard    "../../third_party/googletest:gmock",
215*3f982cf4SFabien Sanglard    "../../third_party/googletest:gtest",
216*3f982cf4SFabien Sanglard    "../../util",
217*3f982cf4SFabien Sanglard  ]
218*3f982cf4SFabien Sanglard}
219*3f982cf4SFabien Sanglard
220*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("compound_rtcp_parser_fuzzer") {
221*3f982cf4SFabien Sanglard  sources = [ "compound_rtcp_parser_fuzzer.cc" ]
222*3f982cf4SFabien Sanglard
223*3f982cf4SFabien Sanglard  deps = [
224*3f982cf4SFabien Sanglard    ":sender",
225*3f982cf4SFabien Sanglard    "../../third_party/abseil",
226*3f982cf4SFabien Sanglard  ]
227*3f982cf4SFabien Sanglard
228*3f982cf4SFabien Sanglard  seed_corpus = "compound_rtcp_parser_fuzzer_seeds"
229*3f982cf4SFabien Sanglard
230*3f982cf4SFabien Sanglard  # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h.
231*3f982cf4SFabien Sanglard  libfuzzer_options = [ "max_len=1500" ]
232*3f982cf4SFabien Sanglard}
233*3f982cf4SFabien Sanglard
234*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("rtp_packet_parser_fuzzer") {
235*3f982cf4SFabien Sanglard  sources = [ "rtp_packet_parser_fuzzer.cc" ]
236*3f982cf4SFabien Sanglard
237*3f982cf4SFabien Sanglard  deps = [
238*3f982cf4SFabien Sanglard    ":receiver",
239*3f982cf4SFabien Sanglard    "../../third_party/abseil",
240*3f982cf4SFabien Sanglard  ]
241*3f982cf4SFabien Sanglard
242*3f982cf4SFabien Sanglard  seed_corpus = "rtp_packet_parser_fuzzer_seeds"
243*3f982cf4SFabien Sanglard
244*3f982cf4SFabien Sanglard  # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h.
245*3f982cf4SFabien Sanglard  libfuzzer_options = [ "max_len=1500" ]
246*3f982cf4SFabien Sanglard}
247*3f982cf4SFabien Sanglard
248*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("sender_report_parser_fuzzer") {
249*3f982cf4SFabien Sanglard  sources = [ "sender_report_parser_fuzzer.cc" ]
250*3f982cf4SFabien Sanglard
251*3f982cf4SFabien Sanglard  deps = [
252*3f982cf4SFabien Sanglard    ":receiver",
253*3f982cf4SFabien Sanglard    "../../third_party/abseil",
254*3f982cf4SFabien Sanglard  ]
255*3f982cf4SFabien Sanglard
256*3f982cf4SFabien Sanglard  seed_corpus = "sender_report_parser_fuzzer_seeds"
257*3f982cf4SFabien Sanglard
258*3f982cf4SFabien Sanglard  # Note: 1500 is approx. kMaxRtpPacketSize in rtp_defines.h.
259*3f982cf4SFabien Sanglard  libfuzzer_options = [ "max_len=1500" ]
260*3f982cf4SFabien Sanglard}
261