blob: bf37c961db930d37e064649ec1c25720ac117183 [file] [log] [blame]
# Copyright 2020 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/config.gni")
import("//build/rust/rustc_binary.gni")
import("//src/sys/build/components.gni")
rustc_binary("bin") {
output_name = "bt_a2dp"
edition = "2018"
with_unit_tests = true
deps = [
"//sdk/fidl/fuchsia.bluetooth:fuchsia.bluetooth-rustc",
"//sdk/fidl/fuchsia.bluetooth.a2dp:fuchsia.bluetooth.a2dp-rustc",
"//sdk/fidl/fuchsia.bluetooth.avdtp:fuchsia.bluetooth.avdtp-rustc",
"//sdk/fidl/fuchsia.bluetooth.avrcp:fuchsia.bluetooth.avrcp-rustc",
"//sdk/fidl/fuchsia.bluetooth.bredr:fuchsia.bluetooth.bredr-rustc",
"//sdk/fidl/fuchsia.cobalt:fuchsia.cobalt-rustc",
"//sdk/fidl/fuchsia.media:fuchsia.media-rustc",
"//sdk/fidl/fuchsia.media.playback:fuchsia.media.playback-rustc",
"//sdk/fidl/fuchsia.media.sessions2:fuchsia.media.sessions2-rustc",
"//sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec-rustc",
"//sdk/fidl/fuchsia.mem:fuchsia.mem-rustc",
"//sdk/fidl/fuchsia.settings:fuchsia.settings-rustc",
"//src/connectivity/bluetooth/fidl:component-rustc",
"//src/connectivity/bluetooth/lib/async-helpers",
"//src/connectivity/bluetooth/lib/bt-a2dp",
"//src/connectivity/bluetooth/lib/bt-a2dp:bt_a2dp_metrics_rustlib",
"//src/connectivity/bluetooth/lib/bt-avdtp",
"//src/connectivity/bluetooth/lib/fuchsia-audio-codec",
"//src/connectivity/bluetooth/lib/fuchsia-audio-device-output",
"//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
"//src/lib/async-utils",
"//src/lib/cobalt/rust:fuchsia-cobalt",
"//src/lib/diagnostics/inspect/contrib/rust",
"//src/lib/diagnostics/inspect/derive",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
"//src/lib/fidl_table_validation",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/syslog/rust:syslog",
"//src/lib/trace/rust:trace",
"//src/lib/trace/rust:trace-provider",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
"//third_party/rust_crates:bitfield",
"//third_party/rust_crates:byteorder",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:log",
"//third_party/rust_crates:nom",
"//third_party/rust_crates:parking_lot",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:slab",
"//third_party/rust_crates:thiserror",
]
test_deps = [
"//sdk/fidl/fuchsia.bluetooth:fuchsia.bluetooth-rustc",
"//src/lib/mundane",
"//third_party/rust_crates:futures-test",
"//third_party/rust_crates:hex",
"//third_party/rust_crates:matches",
]
# TODO(fxbug.dev/56138): Fix the leaks and remove this.
non_rust_deps = [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]
sources = [
"src/avrcp_relay.rs",
"src/avrcp_target.rs",
"src/encoding.rs",
"src/latm.rs",
"src/main.rs",
"src/pcm_audio.rs",
"src/player.rs",
"src/sink_task.rs",
"src/source_task.rs",
"src/sources.rs",
"src/volume_relay.rs",
]
}
fuchsia_component("component") {
component_name = "bt-a2dp"
manifest = "meta/bt-a2dp.cmx"
deps = [ ":bin" ]
}
fuchsia_package("bt-a2dp") {
deps = [ ":component" ]
}
fuchsia_unittest_package("bt-a2dp-tests") {
executable_path = "bin/bt_a2dp_bin_test"
deps = [ ":bin_test" ]
}
group("tests") {
testonly = true
deps = [
":bt-a2dp-encoding-tests",
":bt-a2dp-tests",
]
}
config_data("startup_config") {
for_pkg = "sysmgr"
outputs = [ "bt-a2dp-startup.config" ]
sources = [ "startup.config" ]
}
config_data("service_config") {
for_pkg = "sysmgr"
outputs = [ "bt-a2dp-manager.config" ]
sources = [ "service.config" ]
}
rustc_test("encoding_integration_bin") {
name = "bt_a2dp_encoding_tests"
edition = "2018"
features = [ "test_encoding" ]
source_root = "src/main.rs"
deps = [
"//sdk/fidl/fuchsia.bluetooth:fuchsia.bluetooth-rustc",
"//sdk/fidl/fuchsia.bluetooth.a2dp:fuchsia.bluetooth.a2dp-rustc",
"//sdk/fidl/fuchsia.bluetooth.avdtp:fuchsia.bluetooth.avdtp-rustc",
"//sdk/fidl/fuchsia.bluetooth.avrcp:fuchsia.bluetooth.avrcp-rustc",
"//sdk/fidl/fuchsia.bluetooth.bredr:fuchsia.bluetooth.bredr-rustc",
"//sdk/fidl/fuchsia.cobalt:fuchsia.cobalt-rustc",
"//sdk/fidl/fuchsia.media:fuchsia.media-rustc",
"//sdk/fidl/fuchsia.media.playback:fuchsia.media.playback-rustc",
"//sdk/fidl/fuchsia.media.sessions2:fuchsia.media.sessions2-rustc",
"//sdk/fidl/fuchsia.mediacodec:fuchsia.mediacodec-rustc",
"//sdk/fidl/fuchsia.mem:fuchsia.mem-rustc",
"//sdk/fidl/fuchsia.settings:fuchsia.settings-rustc",
"//src/connectivity/bluetooth/fidl:component-rustc",
"//src/connectivity/bluetooth/lib/async-helpers",
"//src/connectivity/bluetooth/lib/bt-a2dp",
"//src/connectivity/bluetooth/lib/bt-a2dp:bt_a2dp_metrics_rustlib",
"//src/connectivity/bluetooth/lib/bt-avdtp",
"//src/connectivity/bluetooth/lib/fuchsia-audio-codec",
"//src/connectivity/bluetooth/lib/fuchsia-audio-device-output",
"//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
"//src/lib/async-utils",
"//src/lib/cobalt/rust:fuchsia-cobalt",
"//src/lib/diagnostics/inspect/contrib/rust",
"//src/lib/diagnostics/inspect/derive",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
"//src/lib/fidl_table_validation",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/mundane",
"//src/lib/syslog/rust:syslog",
"//src/lib/test_util",
"//src/lib/trace/rust:trace",
"//src/lib/trace/rust:trace-provider",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
"//third_party/rust_crates:bitfield",
"//third_party/rust_crates:byteorder",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:futures-test",
"//third_party/rust_crates:hex",
"//third_party/rust_crates:log",
"//third_party/rust_crates:matches",
"//third_party/rust_crates:nom",
"//third_party/rust_crates:parking_lot",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:slab",
"//third_party/rust_crates:thiserror",
]
sources = [
"src/avrcp_relay.rs",
"src/avrcp_target.rs",
"src/encoding.rs",
"src/latm.rs",
"src/main.rs",
"src/pcm_audio.rs",
"src/player.rs",
"src/sink_task.rs",
"src/source_task.rs",
"src/sources.rs",
"src/volume_relay.rs",
]
}
fuchsia_unittest_package("bt-a2dp-encoding-tests") {
manifest = "meta/bt-a2dp-encoding-tests.cmx"
deps = [ ":encoding_integration_bin" ]
}