blob: 87d2a4ae45c816fe1dc36bc054bc4f422902ee19 [file] [log] [blame]
# Copyright 2018 The Chromium OS 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("//common-mk/pkg_config.gni")
import("//common-mk/proto_library.gni")
group("all") {
deps = [
":arc-networkd",
":libarcnetwork",
":libarcnetwork-util",
":libpatchpanel-client",
]
if (use.fuzzer) {
deps += [
":datapath_fuzzer",
":multicast_forwarder_fuzzer",
":ndproxy_fuzzer",
]
}
if (use.test) {
deps += [ ":arc_network_testrunner" ]
}
}
pkg_config("target_defaults") {
pkg_deps = [
"libbrillo",
"libchrome-${libbase_ver}",
"libndp",
"libshill-client",
"libshill-net-${libbase_ver}",
"protobuf-lite",
"system_api",
]
if (use.fuzzer) {
pkg_deps += [ "protobuf" ]
} else {
pkg_deps += [ "protobuf-lite" ]
}
}
proto_library("protos") {
configs = [ ":target_defaults" ]
proto_in_dir = "."
proto_out_dir = "include/arc/network"
sources = [
"${proto_in_dir}/ipc.proto",
]
}
util_sources = [
"address_manager.cc",
"mac_address_generator.cc",
"net_util.cc",
"socket.cc",
"subnet.cc",
"subnet_pool.cc",
]
shared_library("libarcnetwork-util") {
sources = util_sources
configs += [ ":target_defaults" ]
}
static_library("libarcnetwork") {
configs += [ ":target_defaults" ]
all_dependent_pkg_deps = [
"protobuf",
"system_api",
]
sources = [
"adb_proxy.cc",
"arc_service.cc",
"broadcast_forwarder.cc",
"crostini_service.cc",
"datapath.cc",
"device.cc",
"device_manager.cc",
"dns/big_endian.cc",
"dns/dns_response.cc",
"dns/io_buffer.cc",
"helper_process.cc",
"manager.cc",
"message_dispatcher.cc",
"minijailed_process_runner.cc",
"multicast_forwarder.cc",
"ndp_handler.cc",
"ndproxy.cc",
"neighbor_finder.cc",
"router_finder.cc",
"scoped_ns.cc",
"shill_client.cc",
"socket_forwarder.cc",
]
sources += util_sources
deps = [
":protos",
]
}
shared_library("libpatchpanel-client") {
configs += [ ":target_defaults" ]
all_dependent_pkg_deps = [
"protobuf",
"system_api",
]
sources = [
"client.cc",
]
}
executable("arc-networkd") {
sources = [
"main.cc",
]
configs += [ ":target_defaults" ]
deps = [
":libarcnetwork",
]
}
if (use.fuzzer) {
pkg_config("fuzzing_config") {
pkg_deps = [ "libchrome-test-${libbase_ver}" ]
}
executable("multicast_forwarder_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [
"multicast_forwarder_fuzzer.cc",
]
deps = [
":libarcnetwork",
]
}
executable("ndproxy_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [
"ndproxy_fuzzer.cc",
]
deps = [
":libarcnetwork",
]
}
executable("datapath_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [
"datapath_fuzzer.cc",
]
deps = [
":libarcnetwork",
]
}
}
if (use.test) {
pkg_config("test_config") {
pkg_deps = [ "libchrome-test-${libbase_ver}" ]
}
executable("arc_network_testrunner") {
sources = [
"address_manager_test.cc",
"arc_service_test.cc",
"datapath_test.cc",
"device_manager_test.cc",
"device_test.cc",
"mac_address_generator_test.cc",
"minijailed_process_runner_test.cc",
"ndproxy_test.cc",
"net_util_test.cc",
"shill_client_test.cc",
"subnet_pool_test.cc",
"subnet_test.cc",
]
configs += [
"//common-mk:test",
":target_defaults",
":test_config",
]
defines = [ "UNIT_TEST" ]
deps = [
":libarcnetwork",
"//common-mk/testrunner",
]
}
}