1# 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': [
12    '../build/common.gypi',
13  ],
14  'targets': [
15    {
16      'target_name': 'channel_transport',
17      'type': 'static_library',
18      'dependencies': [
19        '<(DEPTH)/testing/gtest.gyp:gtest',
20        '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
21      ],
22      'sources': [
23        'channel_transport/channel_transport.cc',
24        'channel_transport/include/channel_transport.h',
25        'channel_transport/traffic_control_win.cc',
26        'channel_transport/traffic_control_win.h',
27        'channel_transport/udp_socket_manager_posix.cc',
28        'channel_transport/udp_socket_manager_posix.h',
29        'channel_transport/udp_socket_manager_wrapper.cc',
30        'channel_transport/udp_socket_manager_wrapper.h',
31        'channel_transport/udp_socket_posix.cc',
32        'channel_transport/udp_socket_posix.h',
33        'channel_transport/udp_socket_wrapper.cc',
34        'channel_transport/udp_socket_wrapper.h',
35        'channel_transport/udp_socket2_manager_win.cc',
36        'channel_transport/udp_socket2_manager_win.h',
37        'channel_transport/udp_socket2_win.cc',
38        'channel_transport/udp_socket2_win.h',
39        'channel_transport/udp_transport.h',
40        'channel_transport/udp_transport_impl.cc',
41        'channel_transport/udp_transport_impl.h',
42      ],
43    },
44    {
45      'target_name': 'frame_generator',
46      'type': 'static_library',
47      'sources': [
48        'frame_generator.cc',
49        'frame_generator.h',
50      ],
51      'dependencies': [
52        '<(webrtc_root)/common_video/common_video.gyp:common_video',
53      ],
54    },
55    {
56      'target_name': 'rtcp_packet_parser',
57      'type': 'static_library',
58      'sources': [
59        'rtcp_packet_parser.cc',
60        'rtcp_packet_parser.h',
61      ],
62      'dependencies': [
63        '<(webrtc_root)/modules/modules.gyp:rtp_rtcp',
64      ],
65    },
66    {
67      'target_name': 'field_trial',
68      'type': 'static_library',
69      'sources': [
70        'field_trial.cc',
71        'field_trial.h',
72      ],
73      'dependencies': [
74        '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
75      ],
76    },
77    {
78      'target_name': 'test_main',
79      'type': 'static_library',
80      'sources': [
81        'test_main.cc',
82      ],
83      'dependencies': [
84        'field_trial',
85        '<(DEPTH)/testing/gtest.gyp:gtest',
86        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
87      ],
88    },
89    {
90      'target_name': 'test_support',
91      'type': 'static_library',
92      'dependencies': [
93        '<(DEPTH)/testing/gtest.gyp:gtest',
94        '<(DEPTH)/testing/gmock.gyp:gmock',
95        '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
96      ],
97      'sources': [
98        'testsupport/android/root_path_android.cc',
99        'testsupport/android/root_path_android_chromium.cc',
100        'testsupport/fileutils.cc',
101        'testsupport/fileutils.h',
102        'testsupport/frame_reader.cc',
103        'testsupport/frame_reader.h',
104        'testsupport/frame_writer.cc',
105        'testsupport/frame_writer.h',
106        'testsupport/gtest_prod_util.h',
107        'testsupport/gtest_disable.h',
108        'testsupport/mock/mock_frame_reader.h',
109        'testsupport/mock/mock_frame_writer.h',
110        'testsupport/packet_reader.cc',
111        'testsupport/packet_reader.h',
112        'testsupport/perf_test.cc',
113        'testsupport/perf_test.h',
114        'testsupport/trace_to_stderr.cc',
115        'testsupport/trace_to_stderr.h',
116      ],
117      'conditions': [
118        ['OS=="android"', {
119          'dependencies': [
120            '<(DEPTH)/base/base.gyp:base',
121          ],
122          'sources!': [
123            'testsupport/android/root_path_android.cc',
124          ],
125        }, {
126          'sources!': [
127            'testsupport/android/root_path_android_chromium.cc',
128          ],
129        }],
130      ],
131    },
132    {
133      # Depend on this target when you want to have test_support but also the
134      # main method needed for gtest to execute!
135      'target_name': 'test_support_main',
136      'type': 'static_library',
137      'dependencies': [
138        'field_trial',
139        'test_support',
140        '<(DEPTH)/testing/gmock.gyp:gmock',
141        '<(DEPTH)/testing/gtest.gyp:gtest',
142        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
143      ],
144      'sources': [
145        'run_all_unittests.cc',
146        'test_suite.cc',
147        'test_suite.h',
148      ],
149    },
150    {
151      # Depend on this target when you want to have test_support and a special
152      # main for mac which will run your test on a worker thread and consume
153      # events on the main thread. Useful if you want to access a webcam.
154      # This main will provide all the scaffolding and objective-c black magic
155      # for you. All you need to do is to implement a function in the
156      # run_threaded_main_mac.h file (ImplementThisToRunYourTest).
157      'target_name': 'test_support_main_threaded_mac',
158      'type': 'static_library',
159      'dependencies': [
160        'test_support',
161      ],
162      'sources': [
163        'testsupport/mac/run_threaded_main_mac.h',
164        'testsupport/mac/run_threaded_main_mac.mm',
165      ],
166    },
167    {
168      'target_name': 'test_support_unittests',
169      'type': '<(gtest_target_type)',
170      'dependencies': [
171        'channel_transport',
172        'test_support_main',
173        '<(DEPTH)/testing/gmock.gyp:gmock',
174        '<(DEPTH)/testing/gtest.gyp:gtest',
175      ],
176      'sources': [
177        'channel_transport/udp_transport_unittest.cc',
178        'channel_transport/udp_socket_manager_unittest.cc',
179        'channel_transport/udp_socket_wrapper_unittest.cc',
180        'testsupport/always_passing_unittest.cc',
181        'testsupport/unittest_utils.h',
182        'testsupport/fileutils_unittest.cc',
183        'testsupport/frame_reader_unittest.cc',
184        'testsupport/frame_writer_unittest.cc',
185        'testsupport/packet_reader_unittest.cc',
186        'testsupport/perf_test_unittest.cc',
187      ],
188      # Disable warnings to enable Win64 build, issue 1323.
189      'msvs_disabled_warnings': [
190        4267,  # size_t to int truncation.
191      ],
192      'conditions': [
193        ['OS=="android"', {
194          'dependencies': [
195            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
196          ],
197        }],
198      ],
199    },
200  ],
201  'conditions': [
202    ['include_tests==1 and OS=="android"', {
203      'targets': [
204        {
205          'target_name': 'test_support_unittests_apk_target',
206          'type': 'none',
207          'dependencies': [
208            '<(apk_tests_path):test_support_unittests_apk',
209          ],
210        },
211      ],
212    }],
213    ['test_isolation_mode != "noop"', {
214      'targets': [
215        {
216          'target_name': 'test_support_unittests_run',
217          'type': 'none',
218          'dependencies': [
219            'test_support_unittests',
220          ],
221          'includes': [
222            '../build/isolate.gypi',
223            'test_support_unittests.isolate',
224          ],
225          'sources': [
226            'test_support_unittests.isolate',
227          ],
228        },
229      ],
230    }],
231  ],
232}
233