Split up audio_device build target

We currently have one build target containing everything for audio_device: the interfaces,
the "fine" audio buffer, and the actual implementations for each platform.
Since we are planning to move the Android implementation to the sdk/android folder,
we only want to depend on the interfaces and the "fine" audio buffer, not the other platform
specific implementations. This CL splits the audio_device target into three different targets:
the interfaces, the fine audio buffer, and the platform specific implementations. The default
audio_device target now points to the interfaces instead.

Bug: webrtc:7452
Change-Id: I57e849cc6f4087d950fa02d969ecc682934839cd
Reviewed-on: https://webrtc-review.googlesource.com/61321
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22452}
This commit is contained in:
Paulina Hensman 2018-03-15 12:44:12 +01:00 committed by Commit Bot
parent 5f1a31c565
commit 7bd79a0089
5 changed files with 94 additions and 16 deletions

View File

@ -316,6 +316,7 @@ if (rtc_include_tests) {
"../logging:rtc_event_log_api",
"../modules/audio_coding",
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
"../rtc_base:checks",

View File

@ -348,6 +348,7 @@ rtc_static_library("rtc_audio_video") {
"../call:video_stream_api",
"../common_video:common_video",
"../modules/audio_device:audio_device",
"../modules/audio_device:audio_device_impl",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing:audio_processing",
"../modules/video_capture:video_capture_module",

View File

@ -48,16 +48,21 @@ config("audio_device_warnings_config") {
rtc_source_set("audio_device") {
visibility = [ "*" ]
public_deps = [
":audio_device_generic",
":audio_device_api",
# Deprecated.
# TODO(webrtc:7452): Remove this public dep. audio_device_impl should
# be depended on directly if needed.
":audio_device_impl",
]
if (rtc_include_internal_audio_device && is_ios) {
public_deps += [ ":audio_device_ios_objc" ]
}
}
if (rtc_include_internal_audio_device && is_ios) {
rtc_source_set("audio_device_ios_objc") {
visibility = [ ":audio_device" ]
visibility = [
":audio_device_impl",
":audio_device_ios_objc_unittests",
]
sources = [
"ios/audio_device_ios.h",
"ios/audio_device_ios.mm",
@ -77,6 +82,8 @@ if (rtc_include_internal_audio_device && is_ios) {
"UIKit.framework",
]
deps = [
":audio_device_api",
":audio_device_buffer",
":audio_device_generic",
"../../api:array_view",
"../../rtc_base:checks",
@ -94,14 +101,81 @@ if (rtc_include_internal_audio_device && is_ios) {
}
}
rtc_source_set("audio_device_generic") {
rtc_source_set("audio_device_api") {
visibility = [
":audio_device",
":audio_device_buffer",
":audio_device_impl",
":audio_device_ios_objc",
":audio_device_generic",
]
sources = [
"include/audio_device.h",
"include/audio_device_defines.h",
]
deps = [
"../../:typedefs",
"../../rtc_base:checks",
"../../rtc_base:deprecation",
"../../rtc_base:rtc_base_approved",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("audio_device_buffer") {
sources = [
"audio_device_buffer.cc",
"audio_device_buffer.h",
"audio_device_config.h",
"fine_audio_buffer.cc",
"fine_audio_buffer.h",
]
deps = [
":audio_device_api",
"../../:typedefs",
"../../api:array_view",
"../../common_audio:common_audio_c",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_task_queue",
"../../system_wrappers",
"../../system_wrappers:metrics_api",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_source_set("audio_device_generic") {
sources = [
"audio_device_generic.cc",
"audio_device_generic.h",
]
deps = [
":audio_device_api",
":audio_device_buffer",
"../../rtc_base:rtc_base_approved",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
# Contains default implementations of webrtc::AudioDeviceModule for Windows,
# Linux, Mac, iOS and Android.
rtc_source_set("audio_device_impl") {
visibility = [ "*" ]
public_configs = [ ":audio_device_config" ]
deps = [
":audio_device_api",
":audio_device_buffer",
":audio_device_generic",
"..:module_api",
"../..:webrtc_common",
"../../:typedefs",
@ -116,22 +190,15 @@ rtc_source_set("audio_device_generic") {
"../../system_wrappers:metrics_api",
"../utility",
]
if (rtc_include_internal_audio_device && is_ios) {
deps += [ ":audio_device_ios_objc" ]
}
sources = [
"audio_device_buffer.cc",
"audio_device_buffer.h",
"audio_device_config.h",
"audio_device_generic.cc",
"audio_device_generic.h",
"dummy/audio_device_dummy.cc",
"dummy/audio_device_dummy.h",
"dummy/file_audio_device.cc",
"dummy/file_audio_device.h",
"fine_audio_buffer.cc",
"fine_audio_buffer.h",
"include/audio_device.h",
"include/audio_device_default.h",
"include/audio_device_defines.h",
"include/fake_audio_device.h",
"include/test_audio_device.cc",
"include/test_audio_device.h",
@ -308,6 +375,8 @@ rtc_source_set("mock_audio_device") {
]
deps = [
":audio_device",
":audio_device_buffer",
":audio_device_impl",
"../../test:test_support",
]
}
@ -324,6 +393,9 @@ if (rtc_include_tests) {
]
deps = [
":audio_device",
":audio_device_buffer",
":audio_device_impl",
":audio_device_ios_objc",
":mock_audio_device",
"../../rtc_base:rtc_base_approved",
"../../sdk:audio_objc",
@ -347,6 +419,8 @@ if (rtc_include_tests) {
]
deps = [
":audio_device",
":audio_device_buffer",
":audio_device_impl",
":mock_audio_device",
"../../api:array_view",
"../../api:optional",

View File

@ -186,6 +186,7 @@ if (!build_with_chromium) {
deps = [
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",
"../system_wrappers:system_wrappers_default",
"//build/win:default_exe_manifest",
]

View File

@ -584,6 +584,7 @@ rtc_source_set("test_common") {
"../media:rtc_internal_video_codecs",
"../media:rtc_media_base",
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",
"../modules/audio_device:mock_audio_device",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/audio_processing",