blob: 524a520f0f9f91b272de6cb72120d9c8dbe5ee92 [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 = [
":libpatchpanel",
":libpatchpanel-util",
":patchpaneld",
]
if (use.fuzzer) {
deps += [
":counters_service_fuzzer",
":datapath_fuzzer",
":firewall_fuzzer",
":multicast_forwarder_fuzzer",
":ndproxy_fuzzer",
]
}
if (use.test) {
deps += [ ":patchpanel_testrunner" ]
}
}
pkg_config("target_defaults") {
pkg_deps = [
"libbrillo",
"libchrome",
"libshill-client",
"libshill-net",
"protobuf-lite",
"re2",
"system_api",
"vboot_host",
]
if (use.fuzzer) {
pkg_deps += [ "protobuf" ]
} else {
pkg_deps += [ "protobuf-lite" ]
}
defines = [
"USE_ARCVM=${use.arcvm}",
"USE_JETSTREAM_ROUTING=${use.jetstream_routing}",
]
}
proto_library("protos") {
configs = [ ":target_defaults" ]
proto_in_dir = "."
proto_out_dir = "include/patchpanel"
sources = [ "${proto_in_dir}/ipc.proto" ]
}
util_sources = [
"address_manager.cc",
"mac_address_generator.cc",
"net_util.cc",
"socket.cc",
"socket_forwarder.cc",
"subnet.cc",
"subnet_pool.cc",
]
libpatchpanel_sources = [
"adb_proxy.cc",
"arc_service.cc",
"broadcast_forwarder.cc",
"counters_service.cc",
"crostini_service.cc",
"datapath.cc",
"device.cc",
"dns/big_endian.cc",
"dns/dns_query.cc",
"dns/dns_response.cc",
"dns/dns_util.cc",
"dns/io_buffer.cc",
"firewall.cc",
"helper_process.cc",
"manager.cc",
"message_dispatcher.cc",
"minijailed_process_runner.cc",
"multicast_forwarder.cc",
"multicast_proxy.cc",
"ndproxy.cc",
"network_monitor_service.cc",
"routing_service.cc",
"scoped_ns.cc",
"shill_client.cc",
]
shared_library("libpatchpanel-util") {
sources = util_sources
pkg_deps = [
"libbrillo",
"libchrome",
"libshill-client",
"libshill-net",
"protobuf-lite",
"re2",
]
libs = [ "system_api" ]
if (use.fuzzer) {
pkg_deps += [ "protobuf" ]
} else {
pkg_deps += [ "protobuf-lite" ]
}
defines = [
"USE_ARCVM=${use.arcvm}",
"USE_JETSTREAM_ROUTING=${use.jetstream_routing}",
]
}
static_library("libpatchpanel_test") {
configs += [ ":target_defaults" ]
all_dependent_pkg_deps = [
"protobuf",
"system_api",
]
sources = libpatchpanel_sources
deps = [ ":protos" ]
}
static_library("libpatchpanel") {
configs += [ ":target_defaults" ]
all_dependent_pkg_deps = [
"protobuf",
"system_api",
]
sources = libpatchpanel_sources + util_sources
deps = [ ":protos" ]
}
executable("patchpaneld") {
sources = [ "main.cc" ]
configs += [ ":target_defaults" ]
deps = [ ":libpatchpanel" ]
}
if (use.fuzzer) {
pkg_config("fuzzing_config") {
pkg_deps = [ "libchrome-test" ]
}
executable("multicast_forwarder_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [ "multicast_forwarder_fuzzer.cc" ]
deps = [ ":libpatchpanel" ]
}
executable("ndproxy_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [ "ndproxy_fuzzer.cc" ]
deps = [ ":libpatchpanel" ]
}
executable("datapath_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [ "datapath_fuzzer.cc" ]
deps = [ ":libpatchpanel" ]
}
executable("firewall_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [ "firewall_fuzzer.cc" ]
deps = [ ":libpatchpanel" ]
}
executable("counters_service_fuzzer") {
configs += [
"//common-mk/common_fuzzer",
":target_defaults",
":fuzzing_config",
]
sources = [ "counters_service_fuzzer.cc" ]
deps = [ ":libpatchpanel" ]
}
}
if (use.test) {
pkg_config("test_config") {
pkg_deps = [ "libchrome-test" ]
}
executable("patchpanel_testrunner") {
sources = [
"address_manager_test.cc",
"arc_service_test.cc",
"counters_service_test.cc",
"datapath_test.cc",
"dns/dns_query_test.cc",
"dns/dns_response_test.cc",
"firewall_test.cc",
"mac_address_generator_test.cc",
"minijailed_process_runner_test.cc",
"mock_firewall.cc",
"ndproxy_test.cc",
"net_util_test.cc",
"network_monitor_service_test.cc",
"routing_service_test.cc",
"shill_client_test.cc",
"socket_forwarder_test.cc",
"subnet_pool_test.cc",
"subnet_test.cc",
]
configs += [
"//common-mk:test",
":target_defaults",
":test_config",
]
defines = [ "UNIT_TEST" ]
deps = [
":libpatchpanel-util",
":libpatchpanel_test",
"//common-mk/testrunner",
]
}
}