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