blob: c20a3fcb78e5e3a9ad203ba29034b25c1880e2d8 [file] [log] [blame]
xians@google.comd3185fe2011-09-12 12:24:39 +00001# Copyright (c) 2011 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
9{
10 'includes': [
andrew@webrtc.org3ce62fc2011-10-06 01:03:18 +000011 '../build/common.gypi',
xians@google.comd3185fe2011-09-12 12:24:39 +000012 ],
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +000013 'targets': [
14 {
15 'target_name': 'voice_engine',
16 'type': 'static_library',
17 'dependencies': [
18 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
19 '<(webrtc_root)/modules/modules.gyp:audio_coding_module',
20 '<(webrtc_root)/modules/modules.gyp:audio_conference_mixer',
21 '<(webrtc_root)/modules/modules.gyp:audio_device',
22 '<(webrtc_root)/modules/modules.gyp:audio_processing',
23 '<(webrtc_root)/modules/modules.gyp:media_file',
24 '<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
25 '<(webrtc_root)/modules/modules.gyp:webrtc_utility',
26 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
andrew@webrtc.org3ce62fc2011-10-06 01:03:18 +000027 ],
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +000028 'include_dirs': [
29 'include',
30 '<(webrtc_root)/modules/audio_device',
31 ],
32 'direct_dependent_settings': {
33 'include_dirs': [
34 'include',
35 ],
36 },
37 'sources': [
38 '../common_types.h',
39 '../engine_configurations.h',
40 '../typedefs.h',
41 'include/voe_audio_processing.h',
42 'include/voe_base.h',
43 'include/voe_call_report.h',
44 'include/voe_codec.h',
45 'include/voe_dtmf.h',
46 'include/voe_encryption.h',
47 'include/voe_errors.h',
48 'include/voe_external_media.h',
49 'include/voe_file.h',
50 'include/voe_hardware.h',
51 'include/voe_neteq_stats.h',
52 'include/voe_network.h',
53 'include/voe_rtp_rtcp.h',
54 'include/voe_video_sync.h',
55 'include/voe_volume_control.h',
56 'channel.cc',
57 'channel.h',
58 'channel_manager.cc',
59 'channel_manager.h',
60 'channel_manager_base.cc',
61 'channel_manager_base.h',
62 'dtmf_inband.cc',
63 'dtmf_inband.h',
64 'dtmf_inband_queue.cc',
65 'dtmf_inband_queue.h',
66 'level_indicator.cc',
67 'level_indicator.h',
68 'monitor_module.cc',
69 'monitor_module.h',
70 'output_mixer.cc',
71 'output_mixer.h',
72 'output_mixer_internal.cc',
73 'output_mixer_internal.h',
74 'shared_data.cc',
75 'shared_data.h',
76 'statistics.cc',
77 'statistics.h',
78 'transmit_mixer.cc',
79 'transmit_mixer.h',
80 'utility.cc',
81 'utility.h',
82 'voe_audio_processing_impl.cc',
83 'voe_audio_processing_impl.h',
84 'voe_base_impl.cc',
85 'voe_base_impl.h',
86 'voe_call_report_impl.cc',
87 'voe_call_report_impl.h',
88 'voe_codec_impl.cc',
89 'voe_codec_impl.h',
90 'voe_dtmf_impl.cc',
91 'voe_dtmf_impl.h',
92 'voe_encryption_impl.cc',
93 'voe_encryption_impl.h',
94 'voe_external_media_impl.cc',
95 'voe_external_media_impl.h',
96 'voe_file_impl.cc',
97 'voe_file_impl.h',
98 'voe_hardware_impl.cc',
99 'voe_hardware_impl.h',
100 'voe_neteq_stats_impl.cc',
101 'voe_neteq_stats_impl.h',
102 'voe_network_impl.cc',
103 'voe_network_impl.h',
104 'voe_rtp_rtcp_impl.cc',
105 'voe_rtp_rtcp_impl.h',
106 'voe_video_sync_impl.cc',
107 'voe_video_sync_impl.h',
108 'voe_volume_control_impl.cc',
109 'voe_volume_control_impl.h',
110 'voice_engine_defines.h',
111 'voice_engine_impl.cc',
112 'voice_engine_impl.h',
113 ],
114 },
andrew@webrtc.org3ce62fc2011-10-06 01:03:18 +0000115 ],
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000116 'conditions': [
117 ['OS=="win"', {
118 'defines': ['WEBRTC_DRIFT_COMPENSATION_SUPPORTED',],
119 }],
120 ['include_tests==1', {
121 'targets': [
122 {
123 'target_name': 'voice_engine_unittests',
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000124 'type': '<(gtest_target_type)',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000125 'dependencies': [
126 'voice_engine',
127 '<(DEPTH)/testing/gtest.gyp:gtest',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000128 # The rest are to satisfy the unittests' include chain.
129 # This would be unnecessary if we used qualified includes.
130 '<(webrtc_root)/common_audio/common_audio.gyp:common_audio',
131 '<(webrtc_root)/modules/modules.gyp:audio_device',
132 '<(webrtc_root)/modules/modules.gyp:audio_processing',
133 '<(webrtc_root)/modules/modules.gyp:audio_coding_module',
134 '<(webrtc_root)/modules/modules.gyp:audio_conference_mixer',
135 '<(webrtc_root)/modules/modules.gyp:media_file',
136 '<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
137 '<(webrtc_root)/modules/modules.gyp:webrtc_utility',
138 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000139 '<(webrtc_root)/test/test.gyp:test_support_main',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000140 ],
141 'include_dirs': [
142 'include',
143 ],
144 'sources': [
145 'channel_unittest.cc',
146 'output_mixer_unittest.cc',
147 'transmit_mixer_unittest.cc',
148 'voe_audio_processing_unittest.cc',
149 'voe_base_unittest.cc',
150 'voe_codec_unittest.cc',
151 ],
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000152 'conditions': [
153 # TODO(henrike): remove build_with_chromium==1 when the bots are
154 # using Chromium's buildbots.
155 ['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
156 'dependencies': [
157 '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
158 ],
159 }],
160 ],
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000161 },
162 {
163 'target_name': 'voe_auto_test',
164 'type': 'executable',
165 'dependencies': [
166 'voice_engine',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000167 '<(DEPTH)/testing/gmock.gyp:gmock',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000168 '<(DEPTH)/testing/gtest.gyp:gtest',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000169 '<(DEPTH)/third_party/google-gflags/google-gflags.gyp:google-gflags',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000170 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000171 '<(webrtc_root)/test/libtest/libtest.gyp:libtest',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000172 '<(webrtc_root)/test/test.gyp:channel_transport',
173 '<(webrtc_root)/test/test.gyp:test_support',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000174 ],
175 'include_dirs': [
176 'auto_test',
177 'auto_test/fixtures',
178 '<(webrtc_root)/modules/interface',
179 # TODO(phoglund): We only depend on voice_engine_defines.h here -
180 # move that file to interface and then remove this dependency.
181 '<(webrtc_root)/voice_engine',
182 '<(webrtc_root)/modules/audio_device/main/interface',
183 ],
184 'sources': [
185 'test/auto_test/automated_mode.cc',
186 'test/auto_test/extended/agc_config_test.cc',
187 'test/auto_test/extended/ec_metrics_test.cc',
188 'test/auto_test/fakes/fake_external_transport.cc',
189 'test/auto_test/fakes/fake_external_transport.h',
190 'test/auto_test/fixtures/after_initialization_fixture.cc',
191 'test/auto_test/fixtures/after_initialization_fixture.h',
192 'test/auto_test/fixtures/after_streaming_fixture.cc',
193 'test/auto_test/fixtures/after_streaming_fixture.h',
194 'test/auto_test/fixtures/before_initialization_fixture.cc',
195 'test/auto_test/fixtures/before_initialization_fixture.h',
196 'test/auto_test/fuzz/rtp_fuzz_test.cc',
197 'test/auto_test/standard/audio_processing_test.cc',
198 'test/auto_test/standard/call_report_test.cc',
199 'test/auto_test/standard/codec_before_streaming_test.cc',
200 'test/auto_test/standard/codec_test.cc',
201 'test/auto_test/standard/dtmf_test.cc',
202 'test/auto_test/standard/encryption_test.cc',
203 'test/auto_test/standard/external_media_test.cc',
204 'test/auto_test/standard/file_before_streaming_test.cc',
205 'test/auto_test/standard/file_test.cc',
206 'test/auto_test/standard/hardware_before_initializing_test.cc',
207 'test/auto_test/standard/hardware_before_streaming_test.cc',
208 'test/auto_test/standard/hardware_test.cc',
209 'test/auto_test/standard/manual_hold_test.cc',
210 'test/auto_test/standard/mixing_test.cc',
211 'test/auto_test/standard/neteq_stats_test.cc',
212 'test/auto_test/standard/neteq_test.cc',
213 'test/auto_test/standard/network_test.cc',
214 'test/auto_test/standard/rtp_rtcp_before_streaming_test.cc',
215 'test/auto_test/standard/rtp_rtcp_test.cc',
216 'test/auto_test/standard/voe_base_misc_test.cc',
217 'test/auto_test/standard/video_sync_test.cc',
218 'test/auto_test/standard/volume_test.cc',
219 'test/auto_test/resource_manager.cc',
220 'test/auto_test/voe_cpu_test.cc',
221 'test/auto_test/voe_cpu_test.h',
222 'test/auto_test/voe_extended_test.cc',
223 'test/auto_test/voe_extended_test.h',
224 'test/auto_test/voe_standard_test.cc',
225 'test/auto_test/voe_standard_test.h',
226 'test/auto_test/voe_stress_test.cc',
227 'test/auto_test/voe_stress_test.h',
228 'test/auto_test/voe_test_defines.h',
229 'test/auto_test/voe_test_interface.h',
230 'test/auto_test/voe_unit_test.cc',
231 'test/auto_test/voe_unit_test.h',
232 ],
233 'conditions': [
234 ['OS=="android"', {
235 # some tests are not supported on android yet, exclude these tests.
236 'sources!': [
237 'test/auto_test/standard/hardware_before_streaming_test.cc',
238 ],
239 }],
240 ],
241 # Disable warnings to enable Win64 build, issue 1323.
242 'msvs_disabled_warnings': [
243 4267, # size_t to int truncation.
244 ],
245 },
246 {
247 # command line test that should work on linux/mac/win
248 'target_name': 'voe_cmd_test',
249 'type': 'executable',
250 'dependencies': [
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000251 'voice_engine',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000252 '<(DEPTH)/testing/gtest.gyp:gtest',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000253 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000254 '<(webrtc_root)/test/test.gyp:channel_transport',
255 '<(webrtc_root)/test/test.gyp:test_support',
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000256 ],
257 'sources': [
258 'test/cmd_test/voe_cmd_test.cc',
259 ],
260 },
261 ], # targets
262 'conditions': [
263 # TODO(kjellander): Support UseoFMFC on VS2010.
264 # http://code.google.com/p/webrtc/issues/detail?id=709
265 ['OS=="win" and MSVS_VERSION < "2010"', {
266 'targets': [
267 # WinTest - GUI test for Windows
268 {
269 'target_name': 'voe_ui_win_test',
270 'type': 'executable',
271 'dependencies': [
272 'voice_engine',
273 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
274 '<(webrtc_root)/test/test.gyp:test_support',
275 ],
276 'include_dirs': [
277 'win_test',
278 ],
279 'sources': [
280 'test/win_test/Resource.h',
281 'test/win_test/WinTest.cc',
282 'test/win_test/WinTest.h',
283 'test/win_test/WinTest.rc',
284 'test/win_test/WinTestDlg.cc',
285 'test/win_test/WinTestDlg.h',
286 'test/win_test/res/WinTest.ico',
287 'test/win_test/res/WinTest.rc2',
288 'test/win_test/stdafx.cc',
289 'test/win_test/stdafx.h',
290 ],
291 'configurations': {
292 'Common_Base': {
293 'msvs_configuration_attributes': {
294 'conditions': [
295 ['component=="shared_library"', {
296 'UseOfMFC': '2', # Shared DLL
297 },{
298 'UseOfMFC': '1', # Static
299 }],
300 ],
301 },
302 },
303 },
304 'msvs_settings': {
305 'VCLinkerTool': {
306 'SubSystem': '2', # Windows
307 },
308 },
309 },
310 ], # targets
311 }],
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000312 # TODO(henrike): remove build_with_chromium==1 when the bots are using
313 # Chromium's buildbots.
314 ['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
315 'targets': [
316 {
317 'target_name': 'voice_engine_unittests_apk_target',
318 'type': 'none',
319 'dependencies': [
320 '<(apk_tests_path):voice_engine_unittests_apk',
321 ],
322 },
323 ],
324 }],
andrew@webrtc.orgf791b1c2013-05-29 00:38:02 +0000325 ], # conditions
326 }], # include_tests
327 ], # conditions
xians@google.comd3185fe2011-09-12 12:24:39 +0000328}