Suppress races in CallbackWasCalled (issue 313726)
[chromium-blink-merge.git] / jingle / jingle.gyp
blobb2e9f76904634fca462074481e1aef7817486f33
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'variables': {
7     'chromium_code': 1,
8   },  # variables
9   'conditions': [
10     ['enable_webrtc==1 or OS!="android"', {
11       'targets': [
12         # A library of various utils for integration with libjingle.
13         {
14           'target_name': 'jingle_glue',
15           'type': 'static_library',
16           'sources': [
17             'glue/channel_socket_adapter.cc',
18             'glue/channel_socket_adapter.h',
19             'glue/chrome_async_socket.cc',
20             'glue/chrome_async_socket.h',
21             'glue/fake_ssl_client_socket.cc',
22             'glue/fake_ssl_client_socket.h',
23             'glue/proxy_resolving_client_socket.cc',
24             'glue/proxy_resolving_client_socket.h',
25             'glue/pseudotcp_adapter.cc',
26             'glue/pseudotcp_adapter.h',
27             'glue/resolving_client_socket_factory.h',
28             'glue/task_pump.cc',
29             'glue/task_pump.h',
30             'glue/thread_wrapper.cc',
31             'glue/thread_wrapper.h',
32             'glue/utils.cc',
33             'glue/utils.h',
34             'glue/xmpp_client_socket_factory.cc',
35             'glue/xmpp_client_socket_factory.h',
36           ],
37           'dependencies': [
38             '../base/base.gyp:base',
39             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
40             '../net/net.gyp:net',
41             '../third_party/libjingle/libjingle.gyp:libjingle',
42           ],
43           'export_dependent_settings': [
44             '../third_party/libjingle/libjingle.gyp:libjingle',
45           ],
46         },
47         # A library for sending and receiving peer-issued notifications.
48         #
49         # TODO(akalin): Separate out the XMPP stuff from this library into
50         # its own library.
51         {
52           'target_name': 'notifier',
53           'type': 'static_library',
54           'sources': [
55             'notifier/base/const_communicator.h',
56             'notifier/base/gaia_constants.cc',
57             'notifier/base/gaia_constants.h',
58             'notifier/base/gaia_token_pre_xmpp_auth.cc',
59             'notifier/base/gaia_token_pre_xmpp_auth.h',
60             'notifier/base/notification_method.h',
61             'notifier/base/notification_method.cc',
62             'notifier/base/notifier_options.cc',
63             'notifier/base/notifier_options.h',
64             'notifier/base/notifier_options_util.cc',
65             'notifier/base/notifier_options_util.h',
66             'notifier/base/server_information.cc',
67             'notifier/base/server_information.h',
68             'notifier/base/weak_xmpp_client.cc',
69             'notifier/base/weak_xmpp_client.h',
70             'notifier/base/xmpp_connection.cc',
71             'notifier/base/xmpp_connection.h',
72             'notifier/communicator/connection_settings.cc',
73             'notifier/communicator/connection_settings.h',
74             'notifier/communicator/login.cc',
75             'notifier/communicator/login.h',
76             'notifier/communicator/login_settings.cc',
77             'notifier/communicator/login_settings.h',
78             'notifier/communicator/single_login_attempt.cc',
79             'notifier/communicator/single_login_attempt.h',
80             'notifier/listener/non_blocking_push_client.cc',
81             'notifier/listener/non_blocking_push_client.h',
82             'notifier/listener/notification_constants.cc',
83             'notifier/listener/notification_constants.h',
84             'notifier/listener/notification_defines.cc',
85             'notifier/listener/notification_defines.h',
86             'notifier/listener/push_client_observer.cc',
87             'notifier/listener/push_client_observer.h',
88             'notifier/listener/push_client.cc',
89             'notifier/listener/push_client.h',
90             'notifier/listener/push_notifications_listen_task.cc',
91             'notifier/listener/push_notifications_listen_task.h',
92             'notifier/listener/push_notifications_send_update_task.cc',
93             'notifier/listener/push_notifications_send_update_task.h',
94             'notifier/listener/push_notifications_subscribe_task.cc',
95             'notifier/listener/push_notifications_subscribe_task.h',
96             'notifier/listener/send_ping_task.cc',
97             'notifier/listener/send_ping_task.h',
98             'notifier/listener/xml_element_util.cc',
99             'notifier/listener/xml_element_util.h',
100             'notifier/listener/xmpp_push_client.cc',
101             'notifier/listener/xmpp_push_client.h',
102           ],
103           'defines' : [
104             '_CRT_SECURE_NO_WARNINGS',
105           ],
106           'dependencies': [
107             '../base/base.gyp:base',
108             '../net/net.gyp:net',
109             '../third_party/expat/expat.gyp:expat',
110             '../third_party/libjingle/libjingle.gyp:libjingle',
111             '../url/url.gyp:url_lib',
112             'jingle_glue',
113           ],
114           'export_dependent_settings': [
115             '../third_party/libjingle/libjingle.gyp:libjingle',
116           ],
117           'conditions': [
118             ['toolkit_uses_gtk == 1', {
119               'dependencies': [
120                 '../build/linux/system.gyp:gtk'
121               ],
122             }],
123           ],
124         },
125         {
126           'target_name': 'notifier_test_util',
127           'type': 'static_library',
128           'sources': [
129             'notifier/base/fake_base_task.cc',
130             'notifier/base/fake_base_task.h',
131             'notifier/listener/fake_push_client.cc',
132             'notifier/listener/fake_push_client.h',
133             'notifier/listener/fake_push_client_observer.cc',
134             'notifier/listener/fake_push_client_observer.h',
135           ],
136           'dependencies': [
137             'notifier',
138             '../base/base.gyp:base',
139             '../testing/gmock.gyp:gmock',
140           ],
141         },
142         {
143           'target_name': 'jingle_glue_test_util',
144           'type': 'static_library',
145           'sources': [
146             'glue/fake_network_manager.cc',
147             'glue/fake_network_manager.h',
148             'glue/fake_socket_factory.cc',
149             'glue/fake_socket_factory.h',
150           ],
151           'dependencies': [
152             'jingle_glue',
153             '../base/base.gyp:base',
154           ],
155         },
156         {
157           'target_name': 'jingle_unittests',
158           'type': 'executable',
159           'sources': [
160             'glue/channel_socket_adapter_unittest.cc',
161             'glue/chrome_async_socket_unittest.cc',
162             'glue/fake_ssl_client_socket_unittest.cc',
163             'glue/jingle_glue_mock_objects.cc',
164             'glue/jingle_glue_mock_objects.h',
165             'glue/logging_unittest.cc',
166             'glue/mock_task.cc',
167             'glue/mock_task.h',
168             'glue/proxy_resolving_client_socket_unittest.cc',
169             'glue/pseudotcp_adapter_unittest.cc',
170             'glue/task_pump_unittest.cc',
171             'glue/thread_wrapper_unittest.cc',
172             'notifier/base/weak_xmpp_client_unittest.cc',
173             'notifier/base/xmpp_connection_unittest.cc',
174             'notifier/communicator/connection_settings_unittest.cc',
175             'notifier/communicator/login_settings_unittest.cc',
176             'notifier/communicator/single_login_attempt_unittest.cc',
177             'notifier/listener/non_blocking_push_client_unittest.cc',
178             'notifier/listener/notification_defines_unittest.cc',
179             'notifier/listener/push_client_unittest.cc',
180             'notifier/listener/push_notifications_send_update_task_unittest.cc',
181             'notifier/listener/push_notifications_subscribe_task_unittest.cc',
182             'notifier/listener/send_ping_task_unittest.cc',
183             'notifier/listener/xml_element_util_unittest.cc',
184             'notifier/listener/xmpp_push_client_unittest.cc',
185           ],
186           'conditions': [
187             ['OS=="android"', {
188               'sources!': [
189                 # TODO(jrg):
190                 # EXPECT_DEBUG_DEATH() uses features not enabled.
191                 # Should we -std=c++0x or -std=gnu++0x?
192                 'glue/chrome_async_socket_unittest.cc',
193                 'notifier/base/xmpp_connection_unittest.cc',
194               ],
195             }]],
196           'include_dirs': [
197             '..',
198           ],
199           'dependencies': [
200             'jingle_glue',
201             'jingle_glue_test_util',
202             'notifier',
203             'notifier_test_util',
204             '../base/base.gyp:base',
205             '../base/base.gyp:run_all_unittests',
206             '../base/base.gyp:test_support_base',
207             '../net/net.gyp:net',
208             '../net/net.gyp:net_test_support',
209             '../testing/gmock.gyp:gmock',
210             '../testing/gtest.gyp:gtest',
211             '../third_party/libjingle/libjingle.gyp:libjingle',
212           ],
213         },
214       ],
215     }, {  # enable_webrtc!=1 and OS=="android"
216       'targets': [
217         # Stub targets as Android doesn't use libjingle when webrtc is disabled.
218         {
219           'target_name': 'jingle_glue',
220           'type': 'none',
221         },
222         {
223           'target_name': 'jingle_glue_test_util',
224           'type': 'none',
225         },
226         {
227           'target_name': 'notifier',
228           'type': 'static_library',
229           'sources': [
230             'notifier/base/gaia_constants.cc',
231             'notifier/base/gaia_constants.h',
232             'notifier/base/notification_method.h',
233             'notifier/base/notification_method.cc',
234             'notifier/base/notifier_options.cc',
235             'notifier/base/notifier_options.h',
236           ],
237           'dependencies': [
238             '../base/base.gyp:base',
239             '../net/net.gyp:net',
240           ],
241         },
242         {
243           'target_name': 'notifier_test_util',
244           'type': 'none',
245         },
246       ],
247     }],
248   ],