xref: /aosp_15_r20/external/openscreen/discovery/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("../testing/libfuzzer/fuzzer_test.gni")
7*3f982cf4SFabien Sanglard
8*3f982cf4SFabien Sanglardsource_set("public") {
9*3f982cf4SFabien Sanglard  sources = [
10*3f982cf4SFabien Sanglard    "common/config.h",
11*3f982cf4SFabien Sanglard    "common/reporting_client.h",
12*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance.cc",
13*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance.h",
14*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance_endpoint.cc",
15*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance_endpoint.h",
16*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_publisher.h",
17*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_querier.h",
18*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_service.h",
19*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_txt_record.cc",
20*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_txt_record.h",
21*3f982cf4SFabien Sanglard    "mdns/public/mdns_constants.h",
22*3f982cf4SFabien Sanglard    "mdns/public/mdns_service.cc",
23*3f982cf4SFabien Sanglard    "mdns/public/mdns_service.h",
24*3f982cf4SFabien Sanglard    "public/dns_sd_service_factory.h",
25*3f982cf4SFabien Sanglard    "public/dns_sd_service_publisher.h",
26*3f982cf4SFabien Sanglard    "public/dns_sd_service_watcher.h",
27*3f982cf4SFabien Sanglard  ]
28*3f982cf4SFabien Sanglard  public_deps = [ "../platform" ]
29*3f982cf4SFabien Sanglard  deps = [ "../util" ]
30*3f982cf4SFabien Sanglard}
31*3f982cf4SFabien Sanglard
32*3f982cf4SFabien Sanglard# TODO(https://issuetracker.google.com/issues/194234872):
33*3f982cf4SFabien Sanglard# Move implementation files to impl/
34*3f982cf4SFabien Sanglardsource_set("mdns") {
35*3f982cf4SFabien Sanglard  sources = [
36*3f982cf4SFabien Sanglard    "mdns/mdns_domain_confirmed_provider.h",
37*3f982cf4SFabien Sanglard    "mdns/mdns_probe.cc",
38*3f982cf4SFabien Sanglard    "mdns/mdns_probe.h",
39*3f982cf4SFabien Sanglard    "mdns/mdns_probe_manager.cc",
40*3f982cf4SFabien Sanglard    "mdns/mdns_probe_manager.h",
41*3f982cf4SFabien Sanglard    "mdns/mdns_publisher.cc",
42*3f982cf4SFabien Sanglard    "mdns/mdns_publisher.h",
43*3f982cf4SFabien Sanglard    "mdns/mdns_querier.cc",
44*3f982cf4SFabien Sanglard    "mdns/mdns_querier.h",
45*3f982cf4SFabien Sanglard    "mdns/mdns_reader.cc",
46*3f982cf4SFabien Sanglard    "mdns/mdns_reader.h",
47*3f982cf4SFabien Sanglard    "mdns/mdns_receiver.cc",
48*3f982cf4SFabien Sanglard    "mdns/mdns_receiver.h",
49*3f982cf4SFabien Sanglard    "mdns/mdns_record_changed_callback.h",
50*3f982cf4SFabien Sanglard    "mdns/mdns_records.cc",
51*3f982cf4SFabien Sanglard    "mdns/mdns_records.h",
52*3f982cf4SFabien Sanglard    "mdns/mdns_responder.cc",
53*3f982cf4SFabien Sanglard    "mdns/mdns_responder.h",
54*3f982cf4SFabien Sanglard    "mdns/mdns_sender.cc",
55*3f982cf4SFabien Sanglard    "mdns/mdns_sender.h",
56*3f982cf4SFabien Sanglard    "mdns/mdns_service_impl.cc",
57*3f982cf4SFabien Sanglard    "mdns/mdns_service_impl.h",
58*3f982cf4SFabien Sanglard    "mdns/mdns_trackers.cc",
59*3f982cf4SFabien Sanglard    "mdns/mdns_trackers.h",
60*3f982cf4SFabien Sanglard    "mdns/mdns_writer.cc",
61*3f982cf4SFabien Sanglard    "mdns/mdns_writer.h",
62*3f982cf4SFabien Sanglard  ]
63*3f982cf4SFabien Sanglard
64*3f982cf4SFabien Sanglard  public_deps = [ "../third_party/abseil" ]
65*3f982cf4SFabien Sanglard  deps = [
66*3f982cf4SFabien Sanglard    ":public",
67*3f982cf4SFabien Sanglard    "../platform",
68*3f982cf4SFabien Sanglard    "../util",
69*3f982cf4SFabien Sanglard  ]
70*3f982cf4SFabien Sanglard}
71*3f982cf4SFabien Sanglard
72*3f982cf4SFabien Sanglardsource_set("dnssd") {
73*3f982cf4SFabien Sanglard  sources = [
74*3f982cf4SFabien Sanglard    "dnssd/impl/conversion_layer.cc",
75*3f982cf4SFabien Sanglard    "dnssd/impl/conversion_layer.h",
76*3f982cf4SFabien Sanglard    "dnssd/impl/dns_data_graph.cc",
77*3f982cf4SFabien Sanglard    "dnssd/impl/dns_data_graph.h",
78*3f982cf4SFabien Sanglard    "dnssd/impl/instance_key.cc",
79*3f982cf4SFabien Sanglard    "dnssd/impl/instance_key.h",
80*3f982cf4SFabien Sanglard    "dnssd/impl/network_interface_config.cc",
81*3f982cf4SFabien Sanglard    "dnssd/impl/network_interface_config.h",
82*3f982cf4SFabien Sanglard    "dnssd/impl/publisher_impl.cc",
83*3f982cf4SFabien Sanglard    "dnssd/impl/publisher_impl.h",
84*3f982cf4SFabien Sanglard    "dnssd/impl/querier_impl.cc",
85*3f982cf4SFabien Sanglard    "dnssd/impl/querier_impl.h",
86*3f982cf4SFabien Sanglard    "dnssd/impl/service_dispatcher.cc",
87*3f982cf4SFabien Sanglard    "dnssd/impl/service_dispatcher.h",
88*3f982cf4SFabien Sanglard    "dnssd/impl/service_instance.cc",
89*3f982cf4SFabien Sanglard    "dnssd/impl/service_instance.h",
90*3f982cf4SFabien Sanglard    "dnssd/impl/service_key.cc",
91*3f982cf4SFabien Sanglard    "dnssd/impl/service_key.h",
92*3f982cf4SFabien Sanglard  ]
93*3f982cf4SFabien Sanglard
94*3f982cf4SFabien Sanglard  deps = [
95*3f982cf4SFabien Sanglard    ":mdns",
96*3f982cf4SFabien Sanglard    ":public",
97*3f982cf4SFabien Sanglard    "../third_party/abseil",
98*3f982cf4SFabien Sanglard    "../util",
99*3f982cf4SFabien Sanglard  ]
100*3f982cf4SFabien Sanglard}
101*3f982cf4SFabien Sanglard
102*3f982cf4SFabien Sanglardsource_set("testing") {
103*3f982cf4SFabien Sanglard  testonly = true
104*3f982cf4SFabien Sanglard
105*3f982cf4SFabien Sanglard  sources = [
106*3f982cf4SFabien Sanglard    "common/testing/mock_reporting_client.h",
107*3f982cf4SFabien Sanglard    "dnssd/testing/fake_dns_record_factory.cc",
108*3f982cf4SFabien Sanglard    "mdns/testing/hash_test_util.h",
109*3f982cf4SFabien Sanglard    "mdns/testing/mdns_test_util.cc",
110*3f982cf4SFabien Sanglard    "mdns/testing/mdns_test_util.h",
111*3f982cf4SFabien Sanglard  ]
112*3f982cf4SFabien Sanglard
113*3f982cf4SFabien Sanglard  defines = []
114*3f982cf4SFabien Sanglard  if (build_with_chromium) {
115*3f982cf4SFabien Sanglard    sources += [ "mdns/testing/hash_test_util_nop.h" ]
116*3f982cf4SFabien Sanglard  } else {
117*3f982cf4SFabien Sanglard    defines += [ "HASH_TEST_UTIL_USE_ABSL" ]
118*3f982cf4SFabien Sanglard    sources += [ "mdns/testing/hash_test_util_abseil.h" ]
119*3f982cf4SFabien Sanglard  }
120*3f982cf4SFabien Sanglard
121*3f982cf4SFabien Sanglard  deps = [
122*3f982cf4SFabien Sanglard    ":mdns",
123*3f982cf4SFabien Sanglard    ":public",
124*3f982cf4SFabien Sanglard    "../third_party/abseil",
125*3f982cf4SFabien Sanglard    "../third_party/googletest:gmock",
126*3f982cf4SFabien Sanglard    "../third_party/googletest:gtest",
127*3f982cf4SFabien Sanglard  ]
128*3f982cf4SFabien Sanglard}
129*3f982cf4SFabien Sanglard
130*3f982cf4SFabien Sanglardsource_set("unittests") {
131*3f982cf4SFabien Sanglard  testonly = true
132*3f982cf4SFabien Sanglard
133*3f982cf4SFabien Sanglard  sources = [
134*3f982cf4SFabien Sanglard    "dnssd/impl/conversion_layer_unittest.cc",
135*3f982cf4SFabien Sanglard    "dnssd/impl/dns_data_graph_unittest.cc",
136*3f982cf4SFabien Sanglard    "dnssd/impl/instance_key_unittest.cc",
137*3f982cf4SFabien Sanglard    "dnssd/impl/publisher_impl_unittest.cc",
138*3f982cf4SFabien Sanglard    "dnssd/impl/querier_impl_unittest.cc",
139*3f982cf4SFabien Sanglard    "dnssd/impl/service_key_unittest.cc",
140*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance_endpoint_unittest.cc",
141*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_instance_unittest.cc",
142*3f982cf4SFabien Sanglard    "dnssd/public/dns_sd_txt_record_unittest.cc",
143*3f982cf4SFabien Sanglard    "mdns/mdns_probe_manager_unittest.cc",
144*3f982cf4SFabien Sanglard    "mdns/mdns_probe_unittest.cc",
145*3f982cf4SFabien Sanglard    "mdns/mdns_publisher_unittest.cc",
146*3f982cf4SFabien Sanglard    "mdns/mdns_querier_unittest.cc",
147*3f982cf4SFabien Sanglard    "mdns/mdns_random_unittest.cc",
148*3f982cf4SFabien Sanglard    "mdns/mdns_reader_unittest.cc",
149*3f982cf4SFabien Sanglard    "mdns/mdns_receiver_unittest.cc",
150*3f982cf4SFabien Sanglard    "mdns/mdns_records_unittest.cc",
151*3f982cf4SFabien Sanglard    "mdns/mdns_responder_unittest.cc",
152*3f982cf4SFabien Sanglard    "mdns/mdns_sender_unittest.cc",
153*3f982cf4SFabien Sanglard    "mdns/mdns_trackers_unittest.cc",
154*3f982cf4SFabien Sanglard    "mdns/mdns_writer_unittest.cc",
155*3f982cf4SFabien Sanglard    "public/dns_sd_service_watcher_unittest.cc",
156*3f982cf4SFabien Sanglard  ]
157*3f982cf4SFabien Sanglard
158*3f982cf4SFabien Sanglard  deps = [
159*3f982cf4SFabien Sanglard    ":dnssd",
160*3f982cf4SFabien Sanglard    ":mdns",
161*3f982cf4SFabien Sanglard    ":public",
162*3f982cf4SFabien Sanglard    ":testing",
163*3f982cf4SFabien Sanglard    "../platform:test",
164*3f982cf4SFabien Sanglard    "../third_party/abseil",
165*3f982cf4SFabien Sanglard    "../third_party/googletest:gmock",
166*3f982cf4SFabien Sanglard    "../third_party/googletest:gtest",
167*3f982cf4SFabien Sanglard    "../util",
168*3f982cf4SFabien Sanglard  ]
169*3f982cf4SFabien Sanglard}
170*3f982cf4SFabien Sanglard
171*3f982cf4SFabien Sanglardopenscreen_fuzzer_test("mdns_fuzzer") {
172*3f982cf4SFabien Sanglard  sources = [ "mdns/mdns_reader_fuzztest.cc" ]
173*3f982cf4SFabien Sanglard
174*3f982cf4SFabien Sanglard  deps = [
175*3f982cf4SFabien Sanglard    ":mdns",
176*3f982cf4SFabien Sanglard    ":public",
177*3f982cf4SFabien Sanglard  ]
178*3f982cf4SFabien Sanglard
179*3f982cf4SFabien Sanglard  seed_corpus = "mdns/fuzzer_seeds"
180*3f982cf4SFabien Sanglard
181*3f982cf4SFabien Sanglard  # Note: 512 is the maximum size for a serialized mDNS packet.
182*3f982cf4SFabien Sanglard  libfuzzer_options = [ "max_len=512" ]
183*3f982cf4SFabien Sanglard}
184