blob: 28b5783cd3b1a37548b6d1af3da36e10e1f76f54 [file] [log] [blame]
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +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# TODO(andrew): consider moving test_support to src/base/test.
10{
11 'includes': [
andrew@webrtc.org81cf5e42012-06-27 01:41:54 +000012 '../build/common.gypi',
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +000013 ],
14 'targets': [
15 {
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +000016 'target_name': 'channel_transport',
17 'type': 'static_library',
18 'dependencies': [
19 '<(DEPTH)/testing/gtest.gyp:gtest',
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +000020 '<(webrtc_root)/common.gyp:webrtc_common',
andresp@webrtc.org86e1e482015-01-14 09:30:52 +000021 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +000022 ],
23 'sources': [
24 'channel_transport/channel_transport.cc',
Henrik Kjellander1323fc32015-11-11 10:34:26 +010025 'channel_transport/channel_transport.h',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +000026 'channel_transport/traffic_control_win.cc',
27 'channel_transport/traffic_control_win.h',
28 'channel_transport/udp_socket_manager_posix.cc',
29 'channel_transport/udp_socket_manager_posix.h',
30 'channel_transport/udp_socket_manager_wrapper.cc',
31 'channel_transport/udp_socket_manager_wrapper.h',
32 'channel_transport/udp_socket_posix.cc',
33 'channel_transport/udp_socket_posix.h',
34 'channel_transport/udp_socket_wrapper.cc',
35 'channel_transport/udp_socket_wrapper.h',
36 'channel_transport/udp_socket2_manager_win.cc',
37 'channel_transport/udp_socket2_manager_win.h',
38 'channel_transport/udp_socket2_win.cc',
39 'channel_transport/udp_socket2_win.h',
40 'channel_transport/udp_transport.h',
41 'channel_transport/udp_transport_impl.cc',
42 'channel_transport/udp_transport_impl.h',
43 ],
kjellander@webrtc.org66a99282016-02-18 20:30:14 +010044 'msvs_disabled_warnings': [
45 4302, # cast truncation
46 ],
kjellander7cae30c2015-12-16 14:05:29 -080047 'conditions': [
48 ['OS=="win" and clang==1', {
49 'msvs_settings': {
50 'VCCLCompilerTool': {
51 'AdditionalOptions': [
52 # Disable warnings failing when compiling with Clang on Windows.
53 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
54 '-Wno-parentheses-equality',
55 '-Wno-reorder',
56 '-Wno-tautological-constant-out-of-range-compare',
57 '-Wno-unused-private-field',
58 ],
59 },
60 },
61 }],
62 ], # conditions.
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +000063 },
64 {
Niels Möller739fcb92016-02-29 13:11:45 +010065 'target_name': 'video_test_common',
pbos@webrtc.org724947b2013-12-11 16:26:16 +000066 'type': 'static_library',
67 'sources': [
Peter Boström13f61df2016-01-04 22:36:38 +010068 'fake_texture_frame.cc',
69 'fake_texture_frame.h',
pbos@webrtc.org724947b2013-12-11 16:26:16 +000070 'frame_generator.cc',
71 'frame_generator.h',
Niels Möller739fcb92016-02-29 13:11:45 +010072 'frame_utils.cc',
73 'frame_utils.h',
pbos@webrtc.org724947b2013-12-11 16:26:16 +000074 ],
75 'dependencies': [
76 '<(webrtc_root)/common_video/common_video.gyp:common_video',
77 ],
78 },
79 {
pbos@webrtc.orgaca58032014-10-27 18:01:03 +000080 'target_name': 'rtp_test_utils',
asapersson@webrtc.org0f2809a2014-02-21 08:14:45 +000081 'type': 'static_library',
82 'sources': [
83 'rtcp_packet_parser.cc',
84 'rtcp_packet_parser.h',
pbos@webrtc.orgaca58032014-10-27 18:01:03 +000085 'rtp_file_reader.cc',
86 'rtp_file_reader.h',
henrik.lundin@webrtc.org83317142014-12-01 11:25:04 +000087 'rtp_file_writer.cc',
88 'rtp_file_writer.h',
asapersson@webrtc.org0f2809a2014-02-21 08:14:45 +000089 ],
90 'dependencies': [
asapersson@webrtc.org37c05592015-01-28 13:58:27 +000091 '<(DEPTH)/testing/gtest.gyp:gtest',
kjellanderf6b55092016-02-07 23:04:26 -080092 '<(webrtc_root)/common.gyp:webrtc_common',
asapersson@webrtc.org0f2809a2014-02-21 08:14:45 +000093 '<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
94 ],
95 },
96 {
andresp@webrtc.org60015d22014-05-16 09:39:51 +000097 'target_name': 'field_trial',
98 'type': 'static_library',
99 'sources': [
100 'field_trial.cc',
101 'field_trial.h',
102 ],
103 'dependencies': [
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000104 '<(webrtc_root)/common.gyp:webrtc_common',
phoglund37ebcf02016-01-08 05:04:57 -0800105 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default',
andresp@webrtc.org86e1e482015-01-14 09:30:52 +0000106 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000107 ],
108 },
109 {
andresp@webrtc.orga36ad692014-05-14 12:24:04 +0000110 'target_name': 'test_main',
111 'type': 'static_library',
112 'sources': [
113 'test_main.cc',
114 ],
115 'dependencies': [
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000116 'field_trial',
Peter Boström95192fb2015-10-29 12:41:56 +0100117 'test_support',
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000118 '<(DEPTH)/testing/gtest.gyp:gtest',
119 '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
asapersson01d70a32016-05-20 06:29:46 -0700120 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default',
andresp@webrtc.orga36ad692014-05-14 12:24:04 +0000121 ],
122 },
123 {
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000124 'target_name': 'test_support',
125 'type': 'static_library',
126 'dependencies': [
andrew@webrtc.org81cf5e42012-06-27 01:41:54 +0000127 '<(DEPTH)/testing/gtest.gyp:gtest',
128 '<(DEPTH)/testing/gmock.gyp:gmock',
kjellander988d31e2016-02-05 00:23:50 -0800129 '<(webrtc_root)/base/base.gyp:gtest_prod',
andresp@webrtc.org86e1e482015-01-14 09:30:52 +0000130 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000131 ],
132 'sources': [
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000133 'testsupport/fileutils.cc',
andrew@webrtc.org2009f6b2012-11-20 00:20:20 +0000134 'testsupport/fileutils.h',
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +0000135 'testsupport/frame_reader.cc',
andrew@webrtc.org2009f6b2012-11-20 00:20:20 +0000136 'testsupport/frame_reader.h',
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +0000137 'testsupport/frame_writer.cc',
andrew@webrtc.org2009f6b2012-11-20 00:20:20 +0000138 'testsupport/frame_writer.h',
henrika1d34fe92015-06-16 10:04:20 +0200139 'testsupport/iosfileutils.mm',
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +0000140 'testsupport/mock/mock_frame_reader.h',
141 'testsupport/mock/mock_frame_writer.h',
andrew@webrtc.org2009f6b2012-11-20 00:20:20 +0000142 'testsupport/packet_reader.cc',
143 'testsupport/packet_reader.h',
144 'testsupport/perf_test.cc',
145 'testsupport/perf_test.h',
andrew@webrtc.orgb87cc852013-03-25 16:23:37 +0000146 'testsupport/trace_to_stderr.cc',
147 'testsupport/trace_to_stderr.h',
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000148 ],
henrika1d34fe92015-06-16 10:04:20 +0200149 'conditions': [
150 ['OS=="ios"', {
151 'xcode_settings': {
152 'CLANG_ENABLE_OBJC_ARC': 'YES',
153 },
154 }],
Henrik Kjellander9589e2a2015-10-22 06:48:21 +0200155 ['use_x11==1', {
156 'dependencies': [
157 '<(DEPTH)/tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
158 ],
159 }],
henrika1d34fe92015-06-16 10:04:20 +0200160 ],
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000161 },
162 {
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000163 # Depend on this target when you want to have test_support but also the
164 # main method needed for gtest to execute!
165 'target_name': 'test_support_main',
166 'type': 'static_library',
167 'dependencies': [
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000168 'field_trial',
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000169 'test_support',
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000170 '<(DEPTH)/testing/gmock.gyp:gmock',
171 '<(DEPTH)/testing/gtest.gyp:gtest',
172 '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
asapersson01d70a32016-05-20 06:29:46 -0700173 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default',
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000174 ],
175 'sources': [
176 'run_all_unittests.cc',
andresp@webrtc.org60015d22014-05-16 09:39:51 +0000177 'test_suite.cc',
178 'test_suite.h',
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000179 ],
180 },
181 {
phoglund@webrtc.org54e22eb2012-08-08 08:27:46 +0000182 # Depend on this target when you want to have test_support and a special
183 # main for mac which will run your test on a worker thread and consume
184 # events on the main thread. Useful if you want to access a webcam.
185 # This main will provide all the scaffolding and objective-c black magic
186 # for you. All you need to do is to implement a function in the
187 # run_threaded_main_mac.h file (ImplementThisToRunYourTest).
188 'target_name': 'test_support_main_threaded_mac',
189 'type': 'static_library',
190 'dependencies': [
191 'test_support',
192 ],
193 'sources': [
194 'testsupport/mac/run_threaded_main_mac.h',
195 'testsupport/mac/run_threaded_main_mac.mm',
196 ],
197 },
198 {
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000199 'target_name': 'test_support_unittests',
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000200 'type': '<(gtest_target_type)',
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000201 'dependencies': [
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000202 'channel_transport',
kjellander0e739342016-03-02 10:46:17 -0800203 'test_common',
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000204 'test_support_main',
kjellander0e739342016-03-02 10:46:17 -0800205 '<(webrtc_root)/modules/modules.gyp:video_capture',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000206 '<(DEPTH)/testing/gmock.gyp:gmock',
andrew@webrtc.org81cf5e42012-06-27 01:41:54 +0000207 '<(DEPTH)/testing/gtest.gyp:gtest',
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000208 ],
kjellander@webrtc.org1a8d08a2011-11-03 23:28:47 +0000209 'sources': [
kjellander0e739342016-03-02 10:46:17 -0800210 'fake_network_pipe_unittest.cc',
211 'frame_generator_unittest.cc',
212 'rtp_file_reader_unittest.cc',
213 'rtp_file_writer_unittest.cc',
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000214 'channel_transport/udp_transport_unittest.cc',
215 'channel_transport/udp_socket_manager_unittest.cc',
216 'channel_transport/udp_socket_wrapper_unittest.cc',
kjellander@webrtc.org6f729e82014-09-02 15:13:55 +0000217 'testsupport/always_passing_unittest.cc',
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +0000218 'testsupport/unittest_utils.h',
kjellander@webrtc.org7951e812011-10-13 12:24:41 +0000219 'testsupport/fileutils_unittest.cc',
kjellander@webrtc.org5b97b122011-12-08 07:42:18 +0000220 'testsupport/frame_reader_unittest.cc',
221 'testsupport/frame_writer_unittest.cc',
222 'testsupport/packet_reader_unittest.cc',
andrew@webrtc.org2009f6b2012-11-20 00:20:20 +0000223 'testsupport/perf_test_unittest.cc',
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000224 ],
kjellander@webrtc.org6c35e0b2013-06-11 08:29:17 +0000225 # Disable warnings to enable Win64 build, issue 1323.
226 'msvs_disabled_warnings': [
227 4267, # size_t to int truncation.
228 ],
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000229 'conditions': [
kjellander@webrtc.org3bd41562014-09-01 11:06:37 +0000230 ['OS=="android"', {
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000231 'dependencies': [
232 '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
233 ],
234 }],
235 ],
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000236 },
kjellander0e739342016-03-02 10:46:17 -0800237 {
238 'target_name': 'test_common',
239 'type': 'static_library',
240 'sources': [
241 'call_test.cc',
242 'call_test.h',
243 'configurable_frame_size_encoder.cc',
244 'configurable_frame_size_encoder.h',
245 'constants.cc',
246 'constants.h',
247 'direct_transport.cc',
248 'direct_transport.h',
249 'drifting_clock.cc',
250 'drifting_clock.h',
251 'encoder_settings.cc',
252 'encoder_settings.h',
253 'fake_audio_device.cc',
254 'fake_audio_device.h',
255 'fake_decoder.cc',
256 'fake_decoder.h',
257 'fake_encoder.cc',
258 'fake_encoder.h',
259 'fake_network_pipe.cc',
260 'fake_network_pipe.h',
261 'frame_generator_capturer.cc',
262 'frame_generator_capturer.h',
263 'layer_filtering_transport.cc',
264 'layer_filtering_transport.h',
265 'mock_transport.h',
266 'mock_voe_channel_proxy.h',
267 'mock_voice_engine.h',
268 'null_transport.cc',
269 'null_transport.h',
270 'rtp_rtcp_observer.h',
271 'run_loop.cc',
272 'run_loop.h',
273 'statistics.cc',
274 'statistics.h',
275 'vcm_capturer.cc',
276 'vcm_capturer.h',
277 'video_capturer.cc',
278 'video_capturer.h',
279 'win/run_loop_win.cc',
280 ],
281 'conditions': [
282 ['OS=="win"', {
283 'sources!': [
284 'run_loop.cc',
285 ],
286 }],
287 ],
288 'dependencies': [
289 '<(DEPTH)/testing/gmock.gyp:gmock',
290 '<(DEPTH)/testing/gtest.gyp:gtest',
291 '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
nisse037ee922016-04-25 01:39:19 -0700292 '<(webrtc_root)/base/base.gyp:rtc_base_approved',
kjellander0e739342016-03-02 10:46:17 -0800293 '<(webrtc_root)/common.gyp:webrtc_common',
294 '<(webrtc_root)/modules/modules.gyp:media_file',
kjellander0e739342016-03-02 10:46:17 -0800295 '<(webrtc_root)/webrtc.gyp:webrtc',
296 'rtp_test_utils',
297 'test_support',
298 'video_test_common',
299 ],
300 },
301 {
302 'target_name': 'test_renderer',
303 'type': 'static_library',
304 'sources': [
305 'gl/gl_renderer.cc',
306 'gl/gl_renderer.h',
307 'linux/glx_renderer.cc',
308 'linux/glx_renderer.h',
309 'linux/video_renderer_linux.cc',
310 'mac/video_renderer_mac.h',
311 'mac/video_renderer_mac.mm',
312 'null_platform_renderer.cc',
313 'video_renderer.cc',
314 'video_renderer.h',
315 'win/d3d_renderer.cc',
316 'win/d3d_renderer.h',
317 ],
318 'conditions': [
319 ['OS=="linux"', {
320 'sources!': [
321 'null_platform_renderer.cc',
322 ],
323 }],
324 ['OS=="mac"', {
325 'sources!': [
326 'null_platform_renderer.cc',
327 ],
328 }],
329 ['OS!="linux" and OS!="mac"', {
330 'sources!' : [
331 'gl/gl_renderer.cc',
332 'gl/gl_renderer.h',
333 ],
334 }],
335 ['OS=="win"', {
336 'sources!': [
337 'null_platform_renderer.cc',
338 ],
339 'include_dirs': [
340 '<(directx_sdk_path)/Include',
341 ],
342 }],
343 ['OS=="win" and clang==1', {
344 'msvs_settings': {
345 'VCCLCompilerTool': {
346 'AdditionalOptions': [
347 # Disable warnings failing when compiling with Clang on Windows.
348 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
349 '-Wno-bool-conversion',
350 '-Wno-comment',
351 '-Wno-delete-non-virtual-dtor',
352 ],
353 },
354 },
355 }],
356 ],
357 'dependencies': [
358 '<(DEPTH)/testing/gtest.gyp:gtest',
359 '<(webrtc_root)/modules/modules.gyp:media_file',
360 'test_support',
361 'video_test_common',
362 ],
363 'direct_dependent_settings': {
364 'conditions': [
365 ['OS=="linux"', {
366 'libraries': [
367 '-lXext',
368 '-lX11',
369 '-lGL',
370 ],
371 }],
372 ['OS=="android"', {
373 'libraries' : [
374 '-lGLESv2', '-llog',
375 ],
376 }],
377 ['OS=="mac"', {
378 'xcode_settings' : {
379 'OTHER_LDFLAGS' : [
380 '-framework Cocoa',
381 '-framework OpenGL',
382 '-framework CoreVideo',
383 ],
384 },
385 }],
386 ],
387 },
388 },
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000389 ],
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000390 'conditions': [
kjellandere532aec2016-04-17 20:08:20 -0700391 ['OS=="android"', {
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000392 'targets': [
393 {
kjellander@webrtc.org0372b932014-09-03 14:34:46 +0000394 'target_name': 'test_support_unittests_apk_target',
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000395 'type': 'none',
396 'dependencies': [
kjellander208d1982016-05-31 04:01:38 -0700397 '<(android_tests_path):test_support_unittests_apk',
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000398 ],
399 },
400 ],
kjellandere532aec2016-04-17 20:08:20 -0700401 'conditions': [
402 ['test_isolation_mode != "noop"',
403 {
404 'targets': [
405 {
406 'target_name': 'test_support_unittests_apk_run',
407 'type': 'none',
408 'dependencies': [
kjellander208d1982016-05-31 04:01:38 -0700409 '<(android_tests_path):test_support_unittests_apk',
kjellandere532aec2016-04-17 20:08:20 -0700410 ],
411 'includes': [
412 '../build/isolate.gypi',
413 ],
414 'sources': [
415 'test_support_unittests_apk.isolate',
416 ],
417 },
418 ],
419 },
420 ],
421 ],
422 }], # OS=="android"
kjellander@webrtc.org33654222013-08-22 07:57:00 +0000423 ['test_isolation_mode != "noop"', {
424 'targets': [
425 {
426 'target_name': 'test_support_unittests_run',
427 'type': 'none',
428 'dependencies': [
kjellander@webrtc.org33654222013-08-22 07:57:00 +0000429 'test_support_unittests',
430 ],
431 'includes': [
kjellander@webrtc.org2a973172013-10-02 19:31:16 +0000432 '../build/isolate.gypi',
kjellander@webrtc.org33654222013-08-22 07:57:00 +0000433 ],
434 'sources': [
435 'test_support_unittests.isolate',
436 ],
437 },
438 ],
439 }],
henrike@webrtc.org89c67402013-08-02 16:53:47 +0000440 ],
andrew@webrtc.org19eefdc2011-09-14 17:02:44 +0000441}