blob: aa68ecbdbec176c39143ade1a949e64861f646d0 [file] [log] [blame]
# 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/rust/rustc_library.gni")
import("//build/rust/rustc_staticlib.gni")
import("//build/testing/environments.gni")
import("//src/sys/build/components.gni")
rustc_library("fuchsia-async") {
name = "fuchsia_async"
edition = "2018"
version = "0.1.0"
with_unit_tests = true
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",
]
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/temp.rs",
"src/test_support.rs",
]
if (is_fuchsia) {
deps += [
"//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.rs",
"src/runtime/fuchsia/instrumentation.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-std",
"//third_party/rust_crates:smol",
]
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" ]
}
rustc_staticlib("fuchsia-async-staticlib") {
edition = "2018"
deps = [
":fuchsia-async",
"//src/lib/zircon/rust:fuchsia-zircon-status",
"//src/lib/zircon/rust:fuchsia-zircon-sys",
"//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" ]
test_specs = {
environments = [ emu_env ]
}
}
group("tests") {
testonly = true
deps = [
":fuchsia-async-tests",
":fuchsia-async_test($host_toolchain)",
"cpp:tests",
]
}