# Copyright 2017 The Chromium 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("//media/webrtc/audio_processing.gni") import("//services/catalog/public/tools/catalog.gni") import("//services/service_manager/public/cpp/service.gni") import("//services/service_manager/public/service_manifest.gni") import("//services/service_manager/public/tools/test/service_test.gni") import("//testing/test.gni") # Currently standalone service binaries are not supported on Android or iOS. standalone_supported = !(is_android || is_ios) service("audio") { sources = [ "service_main.cc", ] deps = [ ":lib", "//services/audio/public/cpp", "//services/audio/public/mojom", ] } service_manifest("manifest") { name = "audio" source = "manifest.json" } source_set("lib") { sources = [ "debug_recording.cc", "debug_recording.h", "delay_buffer.cc", "delay_buffer.h", "device_notifier.cc", "device_notifier.h", "group_coordinator-impl.h", "group_coordinator.h", "in_process_audio_manager_accessor.cc", "in_process_audio_manager_accessor.h", "input_controller.cc", "input_controller.h", "input_stream.cc", "input_stream.h", "input_sync_writer.cc", "input_sync_writer.h", "local_muter.cc", "local_muter.h", "log_adapter.cc", "log_adapter.h", "log_factory_adapter.cc", "log_factory_adapter.h", "log_factory_manager.cc", "log_factory_manager.h", "loopback_coordinator.cc", "loopback_coordinator.h", "loopback_group_member.h", "loopback_stream.cc", "loopback_stream.h", "output_controller.cc", "output_controller.h", "output_stream.cc", "output_stream.h", "owning_audio_manager_accessor.cc", "owning_audio_manager_accessor.h", "service.cc", "service.h", "service_factory.cc", "service_factory.h", "service_metrics.cc", "service_metrics.h", "snooper_node.cc", "snooper_node.h", "stream_factory.cc", "stream_factory.h", "stream_monitor.h", "stream_monitor_coordinator.cc", "stream_monitor_coordinator.h", "sync_reader.cc", "sync_reader.h", "system_info.cc", "system_info.h", "traced_service_ref.cc", "traced_service_ref.h", "user_input_monitor.cc", "user_input_monitor.h", ] if (audio_processing_in_audio_service_supported) { deps = [ "//media/webrtc", ] } public_deps = [ "//base", "//media", "//media/webrtc", "//services/audio/public/mojom", "//services/service_manager/public/cpp", "//services/service_manager/sandbox:sandbox", ] if (is_linux) { sources += [ "audio_sandbox_hook_linux.cc", "audio_sandbox_hook_linux.h", ] public_deps += [ "//sandbox/linux:sandbox_services" ] } if (is_win) { sources += [ "audio_sandbox_win.cc", "audio_sandbox_win.h", ] public_deps += [ "//sandbox/win:sandbox" ] } configs += [ "//media:media_config", "//media/audio:platform_config", ] } source_set("tests") { testonly = true sources = [ "debug_recording_unittest.cc", "delay_buffer_unittest.cc", "device_notifier_unittest.cc", "group_coordinator_unittest.cc", "input_controller_unittest.cc", "input_stream_unittest.cc", "input_sync_writer_unittest.cc", "local_muter_unittest.cc", "log_factory_manager_unittest.cc", "loopback_stream_unittest.cc", "output_controller_unittest.cc", "output_stream_unittest.cc", "public/cpp/input_ipc_unittest.cc", "public/cpp/output_device_unittest.cc", "service_metrics_unittest.cc", "snooper_node_unittest.cc", "stream_factory_unittest.cc", "sync_reader_unittest.cc", "test/audio_system_to_service_adapter_test.cc", "test/debug_recording_session_unittest.cc", "test/fake_consumer.cc", "test/fake_consumer.h", "test/fake_loopback_group_member.cc", "test/fake_loopback_group_member.h", "test/in_process_service_test.cc", "test/mock_group_coordinator.cc", "test/mock_group_coordinator.h", "test/mock_group_member.cc", "test/mock_group_member.h", "test/mock_log.cc", "test/mock_log.h", "test/service_lifetime_connector_test.cc", "test/service_lifetime_test_template.h", "test/service_observer_mock.cc", "test/service_observer_mock.h", "user_input_monitor_unittest.cc", ] deps = [ ":audio", ":lib", "//base/test:test_support", "//media:test_support", "//mojo/core/embedder", "//services/audio/public/cpp", "//services/audio/public/cpp:test_support", "//services/audio/public/mojom", "//services/service_manager/public/cpp", "//services/service_manager/public/cpp:service_test_support", "//services/service_manager/public/cpp/test:test_support", "//testing/gmock", "//testing/gtest", ] if (standalone_supported) { sources += [ "test/standalone_service_test.cc" ] deps += [ ":standalone_unittest_catalog_source" ] } data_deps = [ ":audio", ] } # Embedded tests support. service_manifest("unittest_manifest") { name = "audio_unittests" source = "test/service_unittest_manifest.json" packaged_services = [ ":manifest" ] } catalog("tests_catalog") { testonly = true embedded_services = [ ":unittest_manifest" ] } # Standalone tests support. if (standalone_supported) { service_manifest("standalone_unittest_manifest") { name = "audio_unittests" source = "test/service_unittest_manifest.json" } catalog("standalone_unittest_catalog") { embedded_services = [ ":standalone_unittest_manifest" ] standalone_services = [ ":manifest" ] } catalog_cpp_source("standalone_unittest_catalog_source") { catalog = ":standalone_unittest_catalog" generated_function_name = "audio::CreateStandaloneUnittestCatalog" } }