blob: 02ba74b30353dd5129497541628ba8cfa3ef5c99 [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{
niklase@google.com470e71d2011-07-07 08:21:25 +000010 'targets': [
11 {
12 'target_name': 'audio_processing',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000013 'type': 'static_library',
14 'variables': {
15 # Outputs some low-level debug files.
16 'aec_debug_dump%': 0,
17 },
niklase@google.com470e71d2011-07-07 08:21:25 +000018 'dependencies': [
andrew@webrtc.org34235372013-04-30 23:43:26 +000019 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
xians@google.comd3185fe2011-09-12 12:24:39 +000020 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
niklase@google.com470e71d2011-07-07 08:21:25 +000021 ],
22 'include_dirs': [
23 '../interface',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000024 'aec/include',
25 'aecm/include',
26 'agc/include',
27 'include',
28 'ns/include',
29 'utility',
niklase@google.com470e71d2011-07-07 08:21:25 +000030 ],
31 'direct_dependent_settings': {
32 'include_dirs': [
33 '../interface',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000034 'include',
niklase@google.com470e71d2011-07-07 08:21:25 +000035 ],
36 },
37 'sources': [
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000038 'aec/include/echo_cancellation.h',
39 'aec/echo_cancellation.c',
40 'aec/echo_cancellation_internal.h',
41 'aec/aec_core.h',
42 'aec/aec_core.c',
bjornv@webrtc.org56a9ec32013-02-20 22:38:47 +000043 'aec/aec_core_internal.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000044 'aec/aec_rdft.h',
45 'aec/aec_rdft.c',
46 'aec/aec_resampler.h',
47 'aec/aec_resampler.c',
48 'aecm/include/echo_control_mobile.h',
49 'aecm/echo_control_mobile.c',
50 'aecm/aecm_core.c',
51 'aecm/aecm_core.h',
52 'agc/include/gain_control.h',
53 'agc/analog_agc.c',
54 'agc/analog_agc.h',
55 'agc/digital_agc.c',
56 'agc/digital_agc.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000057 'audio_buffer.cc',
58 'audio_buffer.h',
59 'audio_processing_impl.cc',
60 'audio_processing_impl.h',
61 'echo_cancellation_impl.cc',
62 'echo_cancellation_impl.h',
andrew@webrtc.org61e596f2013-07-25 18:28:29 +000063 'echo_cancellation_impl_wrapper.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000064 'echo_control_mobile_impl.cc',
65 'echo_control_mobile_impl.h',
66 'gain_control_impl.cc',
67 'gain_control_impl.h',
68 'high_pass_filter_impl.cc',
69 'high_pass_filter_impl.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000070 'include/audio_processing.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000071 'level_estimator_impl.cc',
72 'level_estimator_impl.h',
73 'noise_suppression_impl.cc',
74 'noise_suppression_impl.h',
75 'splitting_filter.cc',
76 'splitting_filter.h',
77 'processing_component.cc',
78 'processing_component.h',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000079 'utility/delay_estimator.c',
80 'utility/delay_estimator.h',
81 'utility/delay_estimator_internal.h',
82 'utility/delay_estimator_wrapper.c',
83 'utility/delay_estimator_wrapper.h',
84 'utility/fft4g.c',
85 'utility/fft4g.h',
86 'utility/ring_buffer.c',
87 'utility/ring_buffer.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000088 'voice_detection_impl.cc',
89 'voice_detection_impl.h',
90 ],
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +000091 'conditions': [
92 ['aec_debug_dump==1', {
93 'defines': ['WEBRTC_AEC_DEBUG_DUMP',],
94 }],
95 ['enable_protobuf==1', {
96 'dependencies': ['audioproc_debug_proto'],
97 'defines': ['WEBRTC_AUDIOPROC_DEBUG_DUMP'],
98 }],
99 ['prefer_fixed_point==1', {
100 'defines': ['WEBRTC_NS_FIXED'],
101 'sources': [
102 'ns/include/noise_suppression_x.h',
103 'ns/noise_suppression_x.c',
104 'ns/nsx_core.c',
105 'ns/nsx_core.h',
106 'ns/nsx_defines.h',
107 ],
108 }, {
109 'defines': ['WEBRTC_NS_FLOAT'],
110 'sources': [
111 'ns/defines.h',
112 'ns/include/noise_suppression.h',
113 'ns/noise_suppression.c',
114 'ns/ns_core.c',
115 'ns/ns_core.h',
116 'ns/windows_private.h',
117 ],
118 }],
119 ['target_arch=="ia32" or target_arch=="x64"', {
120 'dependencies': ['audio_processing_sse2',],
121 }],
fischman@webrtc.org31b4a5a2013-09-05 16:46:36 +0000122 ['(target_arch=="arm" and armv7==1) or target_arch=="armv7"', {
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000123 'dependencies': ['audio_processing_neon',],
124 }],
125 ],
andrew@webrtc.org63e09642013-01-29 06:45:22 +0000126 # TODO(jschuh): Bug 1348: fix size_t to int truncations.
127 'msvs_disabled_warnings': [ 4267, ],
niklase@google.com470e71d2011-07-07 08:21:25 +0000128 },
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000129 ],
130 'conditions': [
131 ['enable_protobuf==1', {
132 'targets': [
133 {
134 'target_name': 'audioproc_debug_proto',
135 'type': 'static_library',
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000136 'sources': ['debug.proto',],
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000137 'variables': {
138 'proto_in_dir': '.',
139 # Workaround to protect against gyp's pathname relativization when
140 # this file is included by modules.gyp.
141 'proto_out_protected': 'webrtc/audio_processing',
142 'proto_out_dir': '<(proto_out_protected)',
143 },
andrew@webrtc.org8c4696c2012-09-08 19:27:24 +0000144 'includes': ['../../build/protoc.gypi',],
145 },
146 ],
147 }],
148 ['target_arch=="ia32" or target_arch=="x64"', {
149 'targets': [
150 {
151 'target_name': 'audio_processing_sse2',
152 'type': 'static_library',
153 'sources': [
154 'aec/aec_core_sse2.c',
155 'aec/aec_rdft_sse2.c',
156 ],
157 'cflags': ['-msse2',],
158 'xcode_settings': {
159 'OTHER_CFLAGS': ['-msse2',],
160 },
161 },
162 ],
163 }],
fischman@webrtc.org31b4a5a2013-09-05 16:46:36 +0000164 ['(target_arch=="arm" and armv7==1) or target_arch=="armv7"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000165 'targets': [{
166 'target_name': 'audio_processing_neon',
167 'type': 'static_library',
168 'includes': ['../../build/arm_neon.gypi',],
169 'dependencies': [
andrew@webrtc.org34235372013-04-30 23:43:26 +0000170 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
kma@webrtc.org12454022012-11-07 22:34:31 +0000171 ],
172 'sources': [
173 'aecm/aecm_core_neon.c',
174 'ns/nsx_core_neon.c',
175 ],
176 'conditions': [
kma@webrtc.org2f9bd242013-02-23 04:16:59 +0000177 ['OS=="android" or OS=="ios"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000178 'dependencies': [
179 'audio_processing_offsets',
180 ],
kma@webrtc.org12454022012-11-07 22:34:31 +0000181 'sources': [
182 'aecm/aecm_core_neon.S',
183 'ns/nsx_core_neon.S',
184 ],
185 'sources!': [
186 'aecm/aecm_core_neon.c',
187 'ns/nsx_core_neon.c',
188 ],
189 'includes!': ['../../build/arm_neon.gypi',],
190 }],
191 ],
192 }],
193 'conditions': [
kma@webrtc.org2f9bd242013-02-23 04:16:59 +0000194 ['OS=="android" or OS=="ios"', {
kma@webrtc.org12454022012-11-07 22:34:31 +0000195 'targets': [{
196 'target_name': 'audio_processing_offsets',
197 'type': 'none',
198 'sources': [
199 'aecm/aecm_core_neon_offsets.c',
200 'ns/nsx_core_neon_offsets.c',
201 ],
202 'variables': {
203 'asm_header_dir': 'asm_offsets',
204 },
205 'includes': ['../../build/generate_asm_header.gypi',],
206 }],
207 }],
andrew@webrtc.org7bf26462011-12-03 00:03:31 +0000208 ],
209 }],
niklase@google.com470e71d2011-07-07 08:21:25 +0000210 ],
211}