blob: 17bbda92eacdf140896a2bcfcc959ae57a26b269 [file] [log] [blame]
# Copyright 2016 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config.gni")
import("//build/fuzzing/fuzzer.gni")
import("//build/package.gni")
import("//build/test.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
declare_args() {
# Enables the tracing feature of mdns, which can be turned on using
# "mdns-util verbose".
enable_mdns_trace = false
}
group("service") {
testonly = true
deps = [
":bin",
":mdns",
":mdns_config",
":mdns_fuzzers",
":mdns_tests",
":packet_reader_fuzzer",
":source_set",
":tests",
]
}
executable("bin") {
output_name = "mdns"
sources = [
"main.cc",
]
deps = [
":source_set",
"//zircon/public/lib/async-loop-cpp",
]
}
source_set("source_set") {
sources = [
"address_prober.cc",
"address_prober.h",
"address_responder.cc",
"address_responder.h",
"config.cc",
"config.h",
"dns_formatting.cc",
"dns_formatting.h",
"dns_message.cc",
"dns_message.h",
"dns_reading.cc",
"dns_reading.h",
"dns_writing.cc",
"dns_writing.h",
"host_name_resolver.cc",
"host_name_resolver.h",
"instance_prober.cc",
"instance_prober.h",
"instance_requestor.cc",
"instance_requestor.h",
"instance_responder.cc",
"instance_responder.h",
"mdns.cc",
"mdns.h",
"mdns_addresses.cc",
"mdns_addresses.h",
"mdns_agent.h",
"mdns_fidl_util.cc",
"mdns_fidl_util.h",
"mdns_interface_transceiver.cc",
"mdns_interface_transceiver.h",
"mdns_interface_transceiver_v4.cc",
"mdns_interface_transceiver_v4.h",
"mdns_interface_transceiver_v6.cc",
"mdns_interface_transceiver_v6.h",
"mdns_names.cc",
"mdns_names.h",
"mdns_service_impl.cc",
"mdns_service_impl.h",
"mdns_transceiver.cc",
"mdns_transceiver.h",
"packet_reader.cc",
"packet_reader.h",
"packet_writer.cc",
"packet_writer.h",
"prober.cc",
"prober.h",
"reply_address.cc",
"reply_address.h",
"resource_renewer.cc",
"resource_renewer.h",
]
public_deps = [
"//garnet/lib/inet",
"//garnet/public/lib/fostr",
"//garnet/public/lib/fsl",
"//garnet/public/lib/json",
"//garnet/public/lib/rapidjson_utils",
"//garnet/public/lib/svc/cpp",
"//sdk/fidl/fuchsia.net.mdns",
"//sdk/fidl/fuchsia.sys",
"//sdk/lib/sys/cpp",
"//src/lib/fxl",
"//third_party/rapidjson",
"//zircon/public/fidl/fuchsia-net",
"//zircon/public/lib/fit",
]
if (enable_mdns_trace) {
defines = [ "MDNS_TRACE" ]
}
}
test("tests") {
output_name = "mdns_tests"
sources = [
"test/config_test.cc",
"test/dns_names_test.cc",
"test/dns_reading_test.cc",
"test/interface_transceiver_test.cc",
]
deps = [
":source_set",
"//third_party/googletest:gtest_main",
"//zircon/public/lib/async-loop-cpp",
]
}
package("mdns") {
deps = [
":bin",
]
binaries = [
{
name = "mdns"
},
]
meta = [
{
path = rebase_path("meta/mdns.cmx")
dest = "mdns.cmx"
},
]
}
config_data("mdns_config") {
for_pkg = "sysmgr"
outputs = [
"mdns.config",
]
sources = [
rebase_path("config/service.config"),
]
}
config_data("mdns_fuchsia_udp_config") {
for_pkg = "mdns"
sources = [
rebase_path("config/fuchsia_udp.config"),
]
}
test_package("mdns_tests") {
deps = [
":tests",
]
tests = [
{
name = "mdns_tests"
environments = basic_envs
},
]
}
fuzzer("packet_reader_fuzzer") {
sources = [
"dns_message.cc",
"dns_message.h",
"dns_reading.cc",
"dns_reading.h",
"packet_reader.cc",
"packet_reader.h",
"packet_reader_fuzzer.cc",
]
deps = [
"//garnet/lib/inet",
"//src/lib/fxl",
]
}
fuzzers_package("mdns_fuzzers") {
fuzzers = [ ":packet_reader_fuzzer" ]
}