blob: 173a340bb55411424d5a885a1aea74ed64783a5a [file]
# 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/components.gni")
import("//build/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/go/toolchain.gni")
import("//src/go/grand_unified_binary/gub.gni")
import("gentool/generated.gni")
grand_unified_binary("bin") {
output_name = "netstack"
}
fuchsia_component("component-v2") {
component_name = "netstack"
manifest = "meta/netstack.cml"
deps = [ ":bin" ]
}
fuchsia_component("component") {
component_name = "netstack"
manifest = "meta/netstack.cmx"
deps = [ ":bin" ]
}
fuchsia_component("component-debug") {
testonly = true
component_name = "netstack-debug"
manifest = "meta/netstack_debug.cmx"
deps = [ ":bin" ]
}
fuchsia_component("component-debug-v2") {
testonly = true
component_name = "netstack-debug"
manifest = "meta/netstack_debug.cml"
deps = [ ":bin" ]
}
fuchsia_package("netstack") {
deps = [ ":component" ]
}
fuchsia_component("component-conformance-testing") {
component_name = "netstack"
manifest = "meta/netstack_conformance_testing.cmx"
deps = [ ":bin" ]
visibility = [
":netstack-conformance-testing",
"//src/connectivity/network/netstack:netstack-conformance-testing_manifest_dist",
"//src/connectivity/network/netstack:netstack-conformance-testing_manifest_dist_generate",
]
}
fuchsia_package("netstack-conformance-testing") {
package_name = "netstack"
deps = [ ":component-conformance-testing" ]
visibility = [ "//src/connectivity/network:config" ]
}
generated_go("gen/netstack") {
definitions = [
{
src = "link/eth/handler.json"
package = "link/eth"
template = "link/fifo/gen/handler.tmpl"
copy = [ "link/fifo/gen/fifo_entry.go" ]
},
{
src = "link/eth/entries.json"
package = "link/eth"
template = "link/fifo/gen/entries.tmpl"
},
{
src = "link/netdevice/handler.json"
package = "link/netdevice"
template = "link/fifo/gen/handler.tmpl"
},
{
src = "link/netdevice/entries.json"
package = "link/netdevice"
template = "link/fifo/gen/entries.tmpl"
},
]
}
go_library("lib") {
name = "go.fuchsia.dev/fuchsia/src/connectivity/network/netstack"
deps = [
"dhcp",
"dns",
"fidlconv",
"fidlext/fuchsia/hardware/ethernet",
"filter",
"inspect",
"link",
"link/bridge",
"link/eth",
"link/netdevice",
"routes",
"time",
"util",
"//sdk/fidl/fuchsia.hardware.ethernet($go_toolchain)",
"//sdk/fidl/fuchsia.hardware.network($go_toolchain)",
"//sdk/fidl/fuchsia.inspect.deprecated($go_toolchain)",
"//sdk/fidl/fuchsia.logger($go_toolchain)",
"//sdk/fidl/fuchsia.net($go_toolchain)",
"//sdk/fidl/fuchsia.net.dhcp($go_toolchain)",
"//sdk/fidl/fuchsia.net.filter($go_toolchain)",
"//sdk/fidl/fuchsia.net.interfaces($go_toolchain)",
"//sdk/fidl/fuchsia.net.name($go_toolchain)",
"//sdk/fidl/fuchsia.net.neighbor($go_toolchain)",
"//sdk/fidl/fuchsia.net.routes($go_toolchain)",
"//sdk/fidl/fuchsia.net.stack($go_toolchain)",
"//sdk/fidl/fuchsia.net.tun($go_toolchain)",
"//sdk/fidl/fuchsia.netstack($go_toolchain)",
"//sdk/fidl/fuchsia.posix($go_toolchain)",
"//sdk/fidl/fuchsia.posix.socket($go_toolchain)",
"//sdk/fidl/fuchsia.stash($go_toolchain)",
"//sdk/fidl/fuchsia.sys($go_toolchain)",
"//src/lib/component",
"//src/lib/syslog/go",
"//third_party/golibs:github.com/google/go-cmp",
"//third_party/golibs:gvisor.dev/gvisor",
]
sources = [
"errors.go",
"fuchsia_inspect_inspect.go",
"fuchsia_inspect_inspect_test.go",
"fuchsia_net_dhcp.go",
"fuchsia_net_interfaces.go",
"fuchsia_net_interfaces_test.go",
"fuchsia_net_name_dns_server_watcher.go",
"fuchsia_net_name_dns_server_watcher_test.go",
"fuchsia_net_neighbor.go",
"fuchsia_net_neighbor_test.go",
"fuchsia_net_routes.go",
"fuchsia_net_stack.go",
"fuchsia_net_stack_test.go",
"fuchsia_posix_socket.go",
"main.go",
"ndp.go",
"ndp_test.go",
"netstack.go",
"netstack_service.go",
"netstack_service_impl_test.go",
"netstack_test.go",
"noop_endpoint_test.go",
"pprof/export.go",
"socket_conv.go",
]
}
go_test("netstack_test") {
gopackages = [ "go.fuchsia.dev/fuchsia/src/connectivity/network/netstack" ]
deps = [ ":lib" ]
}
fuchsia_unittest_package("netstack-gotests") {
deps = [ ":netstack_test" ]
manifest = "meta/netstack_test.cmx"
}
group("tests") {
testonly = true
deps = [
":netstack-gotests",
"bench:tests",
"dhcp:tests",
"dns:tests",
"fidlconv:tests",
"filter:tests",
"inspect:tests",
"link/bridge:tests",
"link/eth:tests",
"link/fifo:tests",
"link/netdevice:tests",
"routes:tests",
"tests",
"time:tests",
"util:tests",
]
}