| # Copyright 2018 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/product.gni") |
| import("//build/rust/rustc_library.gni") |
| import("//build/rust/rustc_staticlib.gni") |
| import("//build/testing/environments.gni") |
| |
| config("trace_level_logging") { |
| rustflags = [ "--cfg=trace_level_logging" ] |
| visibility = [ ":*" ] |
| } |
| |
| rustc_library("fuchsia-async") { |
| name = "fuchsia_async" |
| edition = "2021" |
| version = "0.1.0" |
| with_unit_tests = true |
| |
| # TODO(fxbug.dev/97697) Remove --nocapture when this flake is found and fixed. |
| if (is_host) { |
| args = [ "--nocapture" ] |
| } |
| deps = [ |
| "//src/lib/fuchsia-async-macro", |
| "//src/lib/fuchsia-system-alloc", |
| "//src/lib/zircon/rust:fuchsia-zircon-status", |
| "//third_party/rust_crates:bitflags", |
| "//third_party/rust_crates:crossbeam", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:libc", |
| "//third_party/rust_crates:parking_lot", |
| "//third_party/rust_crates:pin-utils", |
| "//third_party/rust_crates:smallvec", |
| "//third_party/rust_crates:tracing", |
| ] |
| sources = [ |
| "src/atomic_future.rs", |
| "src/handle/mod.rs", |
| "src/lib.rs", |
| "src/net/mod.rs", |
| "src/runtime/mod.rs", |
| "src/runtime/stub.rs", |
| "src/test_support.rs", |
| ] |
| if (is_fuchsia) { |
| deps += [ |
| "//src/lib/zerocopy", |
| "//src/lib/zircon/rust:fuchsia-zircon", |
| "//third_party/rust_crates:socket2", |
| ] |
| sources += [ |
| "src/handle/zircon/channel.rs", |
| "src/handle/zircon/fifo.rs", |
| "src/handle/zircon/mod.rs", |
| "src/handle/zircon/on_signals.rs", |
| "src/handle/zircon/rwhandle.rs", |
| "src/handle/zircon/socket.rs", |
| "src/net/fuchsia/mod.rs", |
| "src/net/fuchsia/tcp.rs", |
| "src/net/fuchsia/udp.rs", |
| "src/runtime/fuchsia/executor/common.rs", |
| "src/runtime/fuchsia/executor/instrumentation.rs", |
| "src/runtime/fuchsia/executor/local.rs", |
| "src/runtime/fuchsia/executor/mod.rs", |
| "src/runtime/fuchsia/executor/packets.rs", |
| "src/runtime/fuchsia/executor/send.rs", |
| "src/runtime/fuchsia/executor/time.rs", |
| "src/runtime/fuchsia/mod.rs", |
| "src/runtime/fuchsia/task.rs", |
| "src/runtime/fuchsia/timer.rs", |
| ] |
| } else { |
| deps += [ |
| "//third_party/rust_crates:lazy_static", |
| "//third_party/rust_crates:slab", |
| ] |
| if (current_toolchain != unknown_wasm32_toolchain) { |
| deps += [ |
| "//third_party/rust_crates:async-channel", |
| "//third_party/rust_crates:async-executor", |
| "//third_party/rust_crates:async-io", |
| "//third_party/rust_crates:async-net", |
| "//third_party/rust_crates:blocking", |
| "//third_party/rust_crates:easy-parallel", |
| "//third_party/rust_crates:futures-lite", |
| ] |
| sources += [ "src/net/portable/udp.rs" ] |
| } |
| sources += [ |
| "src/handle/emulated/channel.rs", |
| "src/handle/emulated/mod.rs", |
| "src/handle/emulated/socket.rs", |
| "src/net/portable/mod.rs", |
| "src/runtime/portable.rs", |
| ] |
| } |
| test_deps = [ "//third_party/rust_crates:futures-test" ] |
| |
| if (fuchsia_async_trace_level_logging) { |
| configs += [ ":trace_level_logging" ] |
| } |
| } |
| |
| rustc_staticlib("fuchsia-async-staticlib") { |
| edition = "2021" |
| deps = [ |
| ":fuchsia-async", |
| "//src/lib/zircon/rust:fuchsia-zircon-status", |
| "//src/lib/zircon/rust:fuchsia-zircon-types", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:parking_lot", |
| ] |
| if (is_fuchsia) { |
| deps += [ "//src/lib/zircon/rust:fuchsia-zircon" ] |
| } |
| source_root = "src/ffi.rs" |
| |
| sources = [ "src/ffi.rs" ] |
| } |
| |
| fuchsia_unittest_package("fuchsia-async-tests") { |
| manifest = "meta/fuchsia_async_lib_test.cmx" |
| deps = [ |
| ":fuchsia-async_test", |
| "//src/connectivity/network/netstack:component-legacy", |
| ] |
| test_specs = { |
| environments = [ emu_env ] |
| } |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":fuchsia-async-tests", |
| ":fuchsia-async_test($host_toolchain)", |
| "cpp:tests", |
| "tests", |
| ] |
| } |