blob: 16a62b827401330bc9519766d25032d7232dbc05 [file] [log] [blame]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +00001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
mbonadei9aa3f0a2017-01-24 06:58:22 -08009import("../../webrtc.gni")
ehmaldonado38a21322016-09-02 04:10:34 -070010
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000011config("audio_conference_mixer_config") {
brettw@chromium.org519c9e22014-09-08 22:45:18 +000012 visibility = [ ":*" ] # Only targets in this file can depend on this.
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000013 include_dirs = [
Henrik Kjellanderff761fb2015-11-04 08:31:52 +010014 "include",
15 "../include",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000016 ]
17}
18
kjellanderb62dbbe2016-09-23 00:38:52 -070019rtc_static_library("audio_conference_mixer") {
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000020 sources = [
Henrik Kjellanderff761fb2015-11-04 08:31:52 +010021 "include/audio_conference_mixer.h",
22 "include/audio_conference_mixer_defines.h",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000023 "source/audio_conference_mixer_impl.cc",
24 "source/audio_conference_mixer_impl.h",
25 "source/audio_frame_manipulator.cc",
26 "source/audio_frame_manipulator.h",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000027 "source/memory_pool.h",
28 "source/memory_pool_posix.h",
29 "source/memory_pool_win.h",
30 "source/time_scheduler.cc",
31 "source/time_scheduler.h",
32 ]
33
ehmaldonadoe9cc6862016-09-05 06:10:18 -070034 public_configs = [ ":audio_conference_mixer_config" ]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000035
kjellandere40a7ee2016-10-16 23:56:12 -070036 if (!build_with_chromium && is_clang) {
37 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -070038 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +000039 }
40
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000041 deps = [
mbonadei1140f972017-04-26 03:38:35 -070042 "..:module_api",
mbonadei000d1632016-12-22 06:56:21 -080043 "../..:webrtc_common",
aleloi6321b492016-12-05 01:46:09 -080044 "../../audio/utility:audio_frame_operations",
ehmaldonadof6a861a2017-07-19 10:40:47 -070045 "../../rtc_base:rtc_base_approved",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000046 "../../system_wrappers",
47 "../audio_processing",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000048 ]
49}
ehmaldonado36268652017-01-19 08:27:11 -080050
51if (rtc_include_tests) {
52 rtc_source_set("audio_conference_mixer_unittests") {
53 testonly = true
kjellandere0629c02017-04-25 04:04:50 -070054
55 # Skip restricting visibility on mobile platforms since the tests on those
56 # gets additional generated targets which would require many lines here to
57 # cover (which would be confusing to read and hard to maintain).
58 if (!is_android && !is_ios) {
jianjun.zhuc0247402017-07-11 06:20:45 -070059 visibility = [ "..:modules_unittests" ]
kjellandere0629c02017-04-25 04:04:50 -070060 }
ehmaldonado36268652017-01-19 08:27:11 -080061 sources = [
62 "test/audio_conference_mixer_unittest.cc",
63 ]
64 deps = [
65 ":audio_conference_mixer",
66 "../../test:test_support",
67 "//testing/gmock",
68 ]
ehmaldonado9410b512017-01-19 11:57:56 -080069 if (is_win) {
70 cflags = [
71 # TODO(kjellander): bugs.webrtc.org/261: Fix this warning.
72 "/wd4373", # virtual function override.
73 ]
74 }
ehmaldonado36268652017-01-19 08:27:11 -080075 if (!build_with_chromium && is_clang) {
76 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
77 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
78 }
79 }
80}