xref: /aosp_15_r20/external/openscreen/cast/common/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/protobuf/proto_library.gni")
7*3f982cf4SFabien Sanglardimport("../../testing/libfuzzer/fuzzer_test.gni")
8*3f982cf4SFabien Sanglard
9*3f982cf4SFabien Sanglardif (!build_with_chromium) {
10*3f982cf4SFabien Sanglard  declare_args() {
11*3f982cf4SFabien Sanglard    # Whether or not self-signed certificates are enabled for the receiver
12*3f982cf4SFabien Sanglard    # and sender implementations.
13*3f982cf4SFabien Sanglard    cast_allow_developer_certificate = false
14*3f982cf4SFabien Sanglard  }
15*3f982cf4SFabien Sanglard}
16*3f982cf4SFabien Sanglard
17*3f982cf4SFabien Sanglardconfig("certificate_config") {
18*3f982cf4SFabien Sanglard  defines = []
19*3f982cf4SFabien Sanglard
20*3f982cf4SFabien Sanglard  # TODO(jophba): remove once arg is in Chrome.
21*3f982cf4SFabien Sanglard  if (!build_with_chromium) {
22*3f982cf4SFabien Sanglard    if (cast_allow_developer_certificate) {
23*3f982cf4SFabien Sanglard      defines += [ "CAST_ALLOW_DEVELOPER_CERTIFICATE" ]
24*3f982cf4SFabien Sanglard    }
25*3f982cf4SFabien Sanglard  }
26*3f982cf4SFabien Sanglard}
27*3f982cf4SFabien Sanglard
28*3f982cf4SFabien Sanglardsource_set("certificate") {
29*3f982cf4SFabien Sanglard  sources = [
30*3f982cf4SFabien Sanglard    "certificate/cast_cert_validator.cc",
31*3f982cf4SFabien Sanglard    "certificate/cast_cert_validator.h",
32*3f982cf4SFabien Sanglard    "certificate/cast_cert_validator_internal.cc",
33*3f982cf4SFabien Sanglard    "certificate/cast_cert_validator_internal.h",
34*3f982cf4SFabien Sanglard    "certificate/cast_crl.cc",
35*3f982cf4SFabien Sanglard    "certificate/cast_crl.h",
36*3f982cf4SFabien Sanglard    "certificate/cast_trust_store.cc",
37*3f982cf4SFabien Sanglard    "certificate/cast_trust_store.h",
38*3f982cf4SFabien Sanglard    "certificate/types.cc",
39*3f982cf4SFabien Sanglard    "certificate/types.h",
40*3f982cf4SFabien Sanglard  ]
41*3f982cf4SFabien Sanglard  public_deps = [ "../../third_party/boringssl" ]
42*3f982cf4SFabien Sanglard
43*3f982cf4SFabien Sanglard  configs += [ ":certificate_config" ]
44*3f982cf4SFabien Sanglard
45*3f982cf4SFabien Sanglard  deps = [
46*3f982cf4SFabien Sanglard    "../../platform",
47*3f982cf4SFabien Sanglard    "../../third_party/abseil",
48*3f982cf4SFabien Sanglard    "../../util",
49*3f982cf4SFabien Sanglard    "certificate/proto:certificate_proto",
50*3f982cf4SFabien Sanglard  ]
51*3f982cf4SFabien Sanglard}
52*3f982cf4SFabien Sanglard
53*3f982cf4SFabien Sanglardsource_set("channel") {
54*3f982cf4SFabien Sanglard  sources = [
55*3f982cf4SFabien Sanglard    "channel/cast_socket.cc",
56*3f982cf4SFabien Sanglard    "channel/cast_socket_message_port.cc",
57*3f982cf4SFabien Sanglard    "channel/cast_socket_message_port.h",
58*3f982cf4SFabien Sanglard    "channel/connection_namespace_handler.cc",
59*3f982cf4SFabien Sanglard    "channel/connection_namespace_handler.h",
60*3f982cf4SFabien Sanglard    "channel/message_framer.cc",
61*3f982cf4SFabien Sanglard    "channel/message_framer.h",
62*3f982cf4SFabien Sanglard    "channel/message_util.cc",
63*3f982cf4SFabien Sanglard    "channel/message_util.h",
64*3f982cf4SFabien Sanglard    "channel/namespace_router.cc",
65*3f982cf4SFabien Sanglard    "channel/namespace_router.h",
66*3f982cf4SFabien Sanglard    "channel/virtual_connection.h",
67*3f982cf4SFabien Sanglard    "channel/virtual_connection_router.cc",
68*3f982cf4SFabien Sanglard    "channel/virtual_connection_router.h",
69*3f982cf4SFabien Sanglard  ]
70*3f982cf4SFabien Sanglard
71*3f982cf4SFabien Sanglard  deps = [ "certificate/proto:certificate_proto" ]
72*3f982cf4SFabien Sanglard
73*3f982cf4SFabien Sanglard  public_deps = [
74*3f982cf4SFabien Sanglard    ":public",
75*3f982cf4SFabien Sanglard    "../../platform",
76*3f982cf4SFabien Sanglard    "../../third_party/abseil",
77*3f982cf4SFabien Sanglard    "../../util",
78*3f982cf4SFabien Sanglard    "channel/proto:channel_proto",
79*3f982cf4SFabien Sanglard  ]
80*3f982cf4SFabien Sanglard}
81*3f982cf4SFabien Sanglard
82*3f982cf4SFabien Sanglardsource_set("public") {
83*3f982cf4SFabien Sanglard  sources = [
84*3f982cf4SFabien Sanglard    "public/cast_socket.h",
85*3f982cf4SFabien Sanglard    "public/message_port.h",
86*3f982cf4SFabien Sanglard    "public/receiver_info.cc",
87*3f982cf4SFabien Sanglard    "public/receiver_info.h",
88*3f982cf4SFabien Sanglard  ]
89*3f982cf4SFabien Sanglard
90*3f982cf4SFabien Sanglard  deps = [
91*3f982cf4SFabien Sanglard    "../../discovery:public",
92*3f982cf4SFabien Sanglard    "../../platform",
93*3f982cf4SFabien Sanglard    "../../third_party/abseil",
94*3f982cf4SFabien Sanglard    "../../util",
95*3f982cf4SFabien Sanglard  ]
96*3f982cf4SFabien Sanglard}
97*3f982cf4SFabien Sanglard
98*3f982cf4SFabien Sanglardif (!build_with_chromium) {
99*3f982cf4SFabien Sanglard  source_set("discovery_e2e_test") {
100*3f982cf4SFabien Sanglard    testonly = true
101*3f982cf4SFabien Sanglard
102*3f982cf4SFabien Sanglard    if (!is_mac) {
103*3f982cf4SFabien Sanglard      sources = [ "discovery/e2e_test/tests.cc" ]
104*3f982cf4SFabien Sanglard    }
105*3f982cf4SFabien Sanglard
106*3f982cf4SFabien Sanglard    deps = [
107*3f982cf4SFabien Sanglard      ":public",
108*3f982cf4SFabien Sanglard      "../../discovery:dnssd",
109*3f982cf4SFabien Sanglard      "../../discovery:public",
110*3f982cf4SFabien Sanglard      "../../platform:standalone_impl",
111*3f982cf4SFabien Sanglard      "../../testing/util",
112*3f982cf4SFabien Sanglard      "../../third_party/googletest:gtest",
113*3f982cf4SFabien Sanglard    ]
114*3f982cf4SFabien Sanglard  }
115*3f982cf4SFabien Sanglard}
116*3f982cf4SFabien Sanglard
117*3f982cf4SFabien Sanglardsource_set("test_helpers") {
118*3f982cf4SFabien Sanglard  testonly = true
119*3f982cf4SFabien Sanglard
120*3f982cf4SFabien Sanglard  sources = [
121*3f982cf4SFabien Sanglard    "certificate/testing/test_helpers.cc",
122*3f982cf4SFabien Sanglard    "certificate/testing/test_helpers.h",
123*3f982cf4SFabien Sanglard    "channel/testing/fake_cast_socket.h",
124*3f982cf4SFabien Sanglard    "channel/testing/mock_cast_message_handler.h",
125*3f982cf4SFabien Sanglard    "channel/testing/mock_socket_error_handler.h",
126*3f982cf4SFabien Sanglard    "public/testing/discovery_utils.cc",
127*3f982cf4SFabien Sanglard    "public/testing/discovery_utils.h",
128*3f982cf4SFabien Sanglard  ]
129*3f982cf4SFabien Sanglard  public_deps = [
130*3f982cf4SFabien Sanglard    ":certificate",
131*3f982cf4SFabien Sanglard    ":channel",
132*3f982cf4SFabien Sanglard    ":public",
133*3f982cf4SFabien Sanglard    "../../discovery:public",
134*3f982cf4SFabien Sanglard    "../../platform:test",
135*3f982cf4SFabien Sanglard    "../../testing/util",
136*3f982cf4SFabien Sanglard    "../../third_party/abseil",
137*3f982cf4SFabien Sanglard    "../../third_party/boringssl",
138*3f982cf4SFabien Sanglard    "../../third_party/googletest:gmock",
139*3f982cf4SFabien Sanglard    "../../third_party/googletest:gtest",
140*3f982cf4SFabien Sanglard  ]
141*3f982cf4SFabien Sanglard  deps = [
142*3f982cf4SFabien Sanglard    "../../platform",
143*3f982cf4SFabien Sanglard    "../../platform:test",
144*3f982cf4SFabien Sanglard  ]
145*3f982cf4SFabien Sanglard}
146*3f982cf4SFabien Sanglard
147*3f982cf4SFabien Sanglardsource_set("unittests") {
148*3f982cf4SFabien Sanglard  testonly = true
149*3f982cf4SFabien Sanglard  sources = [
150*3f982cf4SFabien Sanglard    "certificate/cast_cert_validator_unittest.cc",
151*3f982cf4SFabien Sanglard    "certificate/cast_crl_unittest.cc",
152*3f982cf4SFabien Sanglard    "channel/cast_socket_unittest.cc",
153*3f982cf4SFabien Sanglard    "channel/connection_namespace_handler_unittest.cc",
154*3f982cf4SFabien Sanglard    "channel/message_framer_unittest.cc",
155*3f982cf4SFabien Sanglard    "channel/namespace_router_unittest.cc",
156*3f982cf4SFabien Sanglard    "channel/virtual_connection_router_unittest.cc",
157*3f982cf4SFabien Sanglard    "public/receiver_info_unittest.cc",
158*3f982cf4SFabien Sanglard  ]
159*3f982cf4SFabien Sanglard
160*3f982cf4SFabien Sanglard  deps = [
161*3f982cf4SFabien Sanglard    ":certificate",
162*3f982cf4SFabien Sanglard    ":channel",
163*3f982cf4SFabien Sanglard    ":public",
164*3f982cf4SFabien Sanglard    ":test_helpers",
165*3f982cf4SFabien Sanglard    "../../platform",
166*3f982cf4SFabien Sanglard    "../../platform:test",
167*3f982cf4SFabien Sanglard    "../../testing/util",
168*3f982cf4SFabien Sanglard    "../../third_party/boringssl",
169*3f982cf4SFabien Sanglard    "../../third_party/googletest:gmock",
170*3f982cf4SFabien Sanglard    "../../third_party/googletest:gtest",
171*3f982cf4SFabien Sanglard    "../../util",
172*3f982cf4SFabien Sanglard    "certificate/proto:certificate_unittest_proto",
173*3f982cf4SFabien Sanglard    "channel/proto:channel_proto",
174*3f982cf4SFabien Sanglard  ]
175*3f982cf4SFabien Sanglard
176*3f982cf4SFabien Sanglard  data = [ "../../test/data/cast/common/certificate/" ]
177*3f982cf4SFabien Sanglard}
178*3f982cf4SFabien Sanglard
179*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("message_framer_fuzzer") {
180*3f982cf4SFabien Sanglard  sources = [ "channel/message_framer_fuzzer.cc" ]
181*3f982cf4SFabien Sanglard  deps = [ ":channel" ]
182*3f982cf4SFabien Sanglard
183*3f982cf4SFabien Sanglard  seed_corpus = "channel/message_framer_fuzzer_seeds"
184*3f982cf4SFabien Sanglard
185*3f982cf4SFabien Sanglard  # NOTE: 65536 is max _body_ size.
186*3f982cf4SFabien Sanglard  libfuzzer_options = [ "max_len=65600" ]
187*3f982cf4SFabien Sanglard}
188