blob: 555bdc346f0ba51b6868f27b1dd02554665cc13e [file] [log] [blame]
andrew@webrtc.orgb9d7d932012-01-25 19:21:13 +00001# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
niklase@google.com470e71d2011-07-07 08:21:25 +00002#
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
9{
andrew@webrtc.orgb0730102013-11-11 17:20:27 +000010 'variables': {
11 'audio_processing_dependencies': [
12 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
13 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
14 ],
15 },
niklase@google.com470e71d2011-07-07 08:21:25 +000016 'targets': [
17 {
18 'target_name': 'audio_processing',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000019 'type': 'static_library',
20 'variables': {
21 # Outputs some low-level debug files.
22 'aec_debug_dump%': 0,
andrew@webrtc.org1760a172013-09-25 23:17:38 +000023
24 # Disables the usual mode where we trust the reported system delay
25 # values the AEC receives. The corresponding define is set appropriately
26 # in the code, but it can be force-enabled here for testing.
27 'aec_untrusted_delay_for_testing%': 0,
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000028 },
niklase@google.com470e71d2011-07-07 08:21:25 +000029 'dependencies': [
andrew@webrtc.orgb0730102013-11-11 17:20:27 +000030 '<@(audio_processing_dependencies)',
niklase@google.com470e71d2011-07-07 08:21:25 +000031 ],
niklase@google.com470e71d2011-07-07 08:21:25 +000032 'sources': [
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000033 'aec/include/echo_cancellation.h',
34 'aec/echo_cancellation.c',
35 'aec/echo_cancellation_internal.h',
36 'aec/aec_core.h',
37 'aec/aec_core.c',
bjornv@webrtc.org56a9ec32013-02-20 22:38:47 +000038 'aec/aec_core_internal.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000039 'aec/aec_rdft.h',
40 'aec/aec_rdft.c',
41 'aec/aec_resampler.h',
42 'aec/aec_resampler.c',
43 'aecm/include/echo_control_mobile.h',
44 'aecm/echo_control_mobile.c',
45 'aecm/aecm_core.c',
46 'aecm/aecm_core.h',
47 'agc/include/gain_control.h',
48 'agc/analog_agc.c',
49 'agc/analog_agc.h',
50 'agc/digital_agc.c',
51 'agc/digital_agc.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000052 'audio_buffer.cc',
53 'audio_buffer.h',
54 'audio_processing_impl.cc',
55 'audio_processing_impl.h',
56 'echo_cancellation_impl.cc',
57 'echo_cancellation_impl.h',
andrew@webrtc.org61e596f2013-07-25 18:28:29 +000058 'echo_cancellation_impl_wrapper.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000059 'echo_control_mobile_impl.cc',
60 'echo_control_mobile_impl.h',
61 'gain_control_impl.cc',
62 'gain_control_impl.h',
63 'high_pass_filter_impl.cc',
64 'high_pass_filter_impl.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000065 'include/audio_processing.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000066 'level_estimator_impl.cc',
67 'level_estimator_impl.h',
68 'noise_suppression_impl.cc',
69 'noise_suppression_impl.h',
70 'splitting_filter.cc',
71 'splitting_filter.h',
72 'processing_component.cc',
73 'processing_component.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000074 'utility/delay_estimator.c',
75 'utility/delay_estimator.h',
76 'utility/delay_estimator_internal.h',
77 'utility/delay_estimator_wrapper.c',
78 'utility/delay_estimator_wrapper.h',
79 'utility/fft4g.c',
80 'utility/fft4g.h',
81 'utility/ring_buffer.c',
82 'utility/ring_buffer.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000083 'voice_detection_impl.cc',
84 'voice_detection_impl.h',
85 ],
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000086 'conditions': [
87 ['aec_debug_dump==1', {
88 'defines': ['WEBRTC_AEC_DEBUG_DUMP',],
89 }],
andrew@webrtc.org1760a172013-09-25 23:17:38 +000090 ['aec_untrusted_delay_for_testing==1', {
91 'defines': ['WEBRTC_UNTRUSTED_DELAY',],
92 }],
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000093 ['enable_protobuf==1', {
94 'dependencies': ['audioproc_debug_proto'],
95 'defines': ['WEBRTC_AUDIOPROC_DEBUG_DUMP'],
96 }],
97 ['prefer_fixed_point==1', {
98 'defines': ['WEBRTC_NS_FIXED'],
99 'sources': [
100 'ns/include/noise_suppression_x.h',
101 'ns/noise_suppression_x.c',
102 'ns/nsx_core.c',
103 'ns/nsx_core.h',
104 'ns/nsx_defines.h',
105 ],
106 }, {
107 'defines': ['WEBRTC_NS_FLOAT'],
108 'sources': [
109 'ns/defines.h',
110 'ns/include/noise_suppression.h',
111 'ns/noise_suppression.c',
112 'ns/ns_core.c',
113 'ns/ns_core.h',
114 'ns/windows_private.h',
115 ],
116 }],
117 ['target_arch=="ia32" or target_arch=="x64"', {
118 'dependencies': ['audio_processing_sse2',],
119 }],
fischman@webrtc.org31b4a5a2013-09-05 16:46:36 +0000120 ['(target_arch=="arm" and armv7==1) or target_arch=="armv7"', {
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000121 'dependencies': ['audio_processing_neon',],
122 }],
andrew@webrtc.orge03cafa2013-11-11 20:10:01 +0000123 ['target_arch=="mipsel"', {
124 'sources': [
125 'aecm/aecm_core_mips.c',
126 ],
127 }, {
128 'sources': [
129 'aecm/aecm_core_c.c',
130 ],
131 }],
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000132 ],
andrew@webrtc.org63e09642013-01-29 06:45:22 +0000133 # TODO(jschuh): Bug 1348: fix size_t to int truncations.
134 'msvs_disabled_warnings': [ 4267, ],
niklase@google.com470e71d2011-07-07 08:21:25 +0000135 },
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000136 ],
137 'conditions': [
138 ['enable_protobuf==1', {
139 'targets': [
140 {
141 'target_name': 'audioproc_debug_proto',
142 'type': 'static_library',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000143 'sources': ['debug.proto',],
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000144 'variables': {
145 'proto_in_dir': '.',
146 # Workaround to protect against gyp's pathname relativization when
147 # this file is included by modules.gyp.
148 'proto_out_protected': 'webrtc/audio_processing',
149 'proto_out_dir': '<(proto_out_protected)',
150 },
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000151 'includes': ['../../build/protoc.gypi',],
152 },
153 ],
154 }],
155 ['target_arch=="ia32" or target_arch=="x64"', {
156 'targets': [
157 {
158 'target_name': 'audio_processing_sse2',
159 'type': 'static_library',
160 'sources': [
161 'aec/aec_core_sse2.c',
162 'aec/aec_rdft_sse2.c',
163 ],
164 'cflags': ['-msse2',],
165 'xcode_settings': {
166 'OTHER_CFLAGS': ['-msse2',],
167 },
168 },
169 ],
170 }],
fischman@webrtc.org31b4a5a2013-09-05 16:46:36 +0000171 ['(target_arch=="arm" and armv7==1) or target_arch=="armv7"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000172 'targets': [{
173 'target_name': 'audio_processing_neon',
174 'type': 'static_library',
175 'includes': ['../../build/arm_neon.gypi',],
176 'dependencies': [
andrew@webrtc.org34235372013-04-30 23:43:26 +0000177 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
kma@webrtc.org12454022012-11-07 22:34:31 +0000178 ],
179 'sources': [
180 'aecm/aecm_core_neon.c',
181 'ns/nsx_core_neon.c',
182 ],
183 'conditions': [
kma@webrtc.org2f9bd242013-02-23 04:16:59 +0000184 ['OS=="android" or OS=="ios"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000185 'dependencies': [
186 'audio_processing_offsets',
187 ],
kma@webrtc.org12454022012-11-07 22:34:31 +0000188 'sources': [
189 'aecm/aecm_core_neon.S',
190 'ns/nsx_core_neon.S',
191 ],
192 'sources!': [
193 'aecm/aecm_core_neon.c',
194 'ns/nsx_core_neon.c',
195 ],
196 'includes!': ['../../build/arm_neon.gypi',],
197 }],
198 ],
199 }],
200 'conditions': [
kma@webrtc.org2f9bd242013-02-23 04:16:59 +0000201 ['OS=="android" or OS=="ios"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000202 'targets': [{
203 'target_name': 'audio_processing_offsets',
204 'type': 'none',
205 'sources': [
206 'aecm/aecm_core_neon_offsets.c',
207 'ns/nsx_core_neon_offsets.c',
208 ],
209 'variables': {
210 'asm_header_dir': 'asm_offsets',
211 },
212 'includes': ['../../build/generate_asm_header.gypi',],
213 }],
214 }],
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000215 ],
216 }],
niklase@google.com470e71d2011-07-07 08:21:25 +0000217 ],
218}