blob: 902e951494c1016ab763c835d186ccdd0366c2b3 [file] [log] [blame]
# 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/test/test_package.gni")
import("//src/media/audio/audio_core_package.gni")
import("//third_party/cobalt/metrics_registry.gni")
declare_args() {
# Set to |true| to enable collecting execution traces of audio_core, or |false| to remove all
# tracing overhead.
audio_core_trace_enabled = true
}
config("audio_core_config") {
if (!audio_core_trace_enabled) {
defines = [ "NTRACE" ]
}
}
action_foreach("json_schema_headers") {
visibility = [ ":*" ]
script = "//src/media/audio/audio_core/schema/make_schema_header.py"
outputs = [
"$target_gen_dir/schema/{{source_name_part}}.inl",
]
args = [
"{{source}}",
rebase_path("$target_gen_dir") + "/schema/{{source_name_part}}.inl",
]
sources = [
"schema/audio_device_settings_schema.jsx",
"schema/audio_policy_schema.jsx",
"schema/volume_curve_schema.jsx",
]
}
metrics_registry("media_metrics_registry") {
project_name = "media"
generate_cc = true
}
audio_core_package("audio_core") {
effects = {
target = "//src/media/audio/effects/passthrough:audio_effects"
name = "audio_effects.so"
}
}
source_set("audio_core_lib") {
public_configs = [ ":audio_core_config" ]
sources = [
"audio_admin.cc",
"audio_admin.h",
"audio_capturer_impl.cc",
"audio_capturer_impl.h",
"audio_core_impl.cc",
"audio_core_impl.h",
"audio_device.cc",
"audio_device.h",
"audio_device_manager.cc",
"audio_device_manager.h",
"audio_device_settings.cc",
"audio_device_settings.h",
"audio_device_settings_persistence.cc",
"audio_device_settings_persistence.h",
"audio_device_settings_serialization.h",
"audio_device_settings_serialization_impl.cc",
"audio_device_settings_serialization_impl.h",
"audio_driver.cc",
"audio_driver.h",
"audio_input.cc",
"audio_input.h",
"audio_link.cc",
"audio_link.h",
"audio_link_packet_source.cc",
"audio_link_packet_source.h",
"audio_link_ring_buffer_source.cc",
"audio_link_ring_buffer_source.h",
"audio_object.cc",
"audio_object.h",
"audio_output.cc",
"audio_output.h",
"audio_packet_ref.cc",
"audio_packet_ref.h",
"audio_plug_detector.h",
"audio_plug_detector_impl.cc",
"audio_plug_detector_impl.h",
"audio_policy.h",
"audio_renderer_format_info.cc",
"audio_renderer_format_info.h",
"audio_renderer_impl.cc",
"audio_renderer_impl.h",
"command_line_options.cc",
"command_line_options.h",
"config_loader.cc",
"config_loader.h",
"driver_output.cc",
"driver_output.h",
"driver_utils.cc",
"driver_utils.h",
"pending_flush_token.cc",
"pending_flush_token.h",
"policy_loader.cc",
"policy_loader.h",
"reporter.cc",
"reporter.h",
"ring_buffer.cc",
"ring_buffer.h",
"stream_volume_manager.cc",
"stream_volume_manager.h",
"threading_model.cc",
"threading_model.h",
"throttle_output.h",
"usage_reporter_impl.cc",
"usage_reporter_impl.h",
"usage_settings.cc",
"usage_settings.h",
"utils.cc",
"utils.h",
"volume_control.cc",
"volume_control.h",
"volume_curve.cc",
"volume_curve.h",
"wakeup_event.cc",
"wakeup_event.h",
]
public_deps = [
"//sdk/fidl/fuchsia.media",
"//sdk/lib/sys/inspect/cpp",
"//third_party/rapidjson",
"//zircon/public/lib/fzl",
"//zircon/public/lib/trace",
"//zircon/system/fidl/fuchsia-cobalt",
]
deps = [
":json_schema_headers",
":media_metrics_registry",
"//sdk/fidl/fuchsia.media",
"//sdk/lib/media/audio/cpp",
"//sdk/lib/media/cpp:no_converters",
"//sdk/lib/sys/cpp",
"//src/lib/fsl",
"//src/lib/fxl",
"//src/media/audio/audio_core/mixer",
"//src/media/audio/lib/effects_loader",
"//src/media/audio/lib/logging",
"//src/media/audio/lib/wav_writer:wav_writer",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
"//zircon/public/lib/audio-proto-utils",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fdio",
"//zircon/public/lib/fit",
"//zircon/public/lib/zx",
"//zircon/system/fidl/fuchsia-hardware-audio",
"//zircon/system/fidl/fuchsia-scheduler",
]
}
executable("audio_core_bin") {
output_name = "audio_core"
sources = [
"main.cc",
]
deps = [
":audio_core_lib",
"//src/lib/fsl",
]
if (audio_core_trace_enabled) {
deps += [ "//zircon/public/lib/trace-provider-with-fdio" ]
}
}
executable("unittest_bin") {
visibility = [ ":*" ]
testonly = true
output_name = "audio_core_unittests"
sources = [
"audio_admin_unittest.cc",
"audio_device_settings_persistence_unittest.cc",
"audio_device_settings_serialization_impl_unittest.cc",
"audio_device_settings_unittest.cc",
"audio_driver_unittest.cc",
"audio_link_packet_source_unittest.cc",
"audio_link_unittest.cc",
"audio_plug_detector_impl_unittest.cc",
"command_line_options_unittest.cc",
"config_loader_unittest.cc",
"driver_output_unittest.cc",
"policy_loader_unittest.cc",
"policy_loader_unittest_data.h",
"reporter_unittest.cc",
"stream_volume_manager_unittest.cc",
"threading_model_unittest.cc",
"usage_reporter_impl_unittest.cc",
"usage_settings_unittest.cc",
"utils_unittest.cc",
"volume_control_unittest.cc",
"volume_curve_unittest.cc",
"wakeup_event_unittest.cc",
]
deps = [
":audio_core_lib",
"testing",
"//garnet/public/lib/gtest",
"//sdk/lib/inspect/testing/cpp",
"//sdk/lib/sys/cpp/testing:unit",
"//src/lib/fxl/test:gtest_main",
"//src/media/audio/audio_core/mixer:mixer",
"//src/media/audio/lib/test:null_renderer_capturer",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
"//zircon/public/lib/fs",
"//zircon/public/lib/fzl",
"//zircon/system/fidl/fuchsia-hardware-audio",
"//zircon/system/fidl/fuchsia-scheduler",
]
}
test_package("audio_core_unittests") {
deps = [
":unittest_bin",
]
tests = [
{
name = "audio_core_unittests"
environments = basic_envs
},
]
}
group("tests") {
testonly = true
deps = [
":audio_core_unittests",
"mixer:tests",
"test",
]
}