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