blob: 170c259db8fa51895ff7da7b093ed14d0067f22f [file] [log] [blame]
# Copyright 2019 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/rust/rustc_library.gni")
import("//build/rust/rustc_macro.gni")
common_deps = [
":net-types-macros",
"//third_party/rust_crates:zerocopy",
]
common_sources = [
"src/ethernet.rs",
"src/ip.rs",
"src/lib.rs",
]
common_test_deps = [ "//third_party/rust_crates:test-case" ]
rustc_library("net-types") {
name = "net-types"
version = "0.1.0"
edition = "2021"
with_unit_tests = true
deps = common_deps
sources = common_sources
test_deps = common_test_deps
features = [ "std" ]
configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}
rustc_library("net-types-nostd") {
name = "net-types-nostd"
version = "0.1.0"
edition = "2021"
with_unit_tests = true
deps = common_deps
sources = common_sources
test_deps = common_test_deps
features = []
# This GN target exists only so that we build without the "std" feature
# enabled in our build system in order to ensure that net-types continues to
# compile and pass tests when the "std" feature is disabled.
visibility = [ ":*" ]
disable_rustdoc = true
configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}
rustc_macro("net-types-macros") {
source_root = "src/macros.rs"
version = "0.1.0"
edition = "2021"
deps = [
"//third_party/rust_crates:assert_matches",
"//third_party/rust_crates:proc-macro2",
"//third_party/rust_crates:quote",
# FIXME(https://fxbug.dev/332277415): Please update to syn 2.x.
# "//third_party/rust_crates:syn",
"//third_party/rust_crates:syn-v1_0_98",
]
sources = [ "src/macros.rs" ]
configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}
fuchsia_unittest_component("net-types-test-component") {
deps = [ ":net-types_test" ]
}
fuchsia_unittest_component("net-types-nostd-test-component") {
deps = [ ":net-types-nostd_test" ]
}
fuchsia_test_package("net-types-test-package") {
package_name = "net-types-test"
test_components = [
":net-types-test-component",
":net-types-nostd-test-component",
]
}
group("tests") {
testonly = true
public_deps = [
":net-types-nostd_test($host_toolchain)",
":net-types-test-package",
":net-types_test($host_toolchain)",
]
# Make sure that all features are at least compiled even if they're not used
# by any other Fuchsia code. Even though the `public_deps` above will cause
# the test target to be built (with `--cfg test` passed during compilation),
# they will not cause the non-test target to be built. We depend on those here
# to ensure that they're built as well.
deps = [
":net-types",
":net-types-nostd",
]
}