BUILD.gn revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1# Copyright 2014 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
5import("//build/config/features.gni")
6
7jingle_includes = exec_script("//build/gypi_to_gn.py",
8                              [ rebase_path("jingle.gypi") ],
9                              "scope",
10                              [ "jingle.gypi" ])
11
12if (enable_webrtc || !is_android) {
13  # GYP version: jingle/jingle.gyp:jingle_glue
14  static_library("jingle_glue") {
15    sources = jingle_includes.jingle_glue_sources
16    deps = [
17      "//base",
18      "//base/third_party/dynamic_annotations",
19      "//net",
20      # '../third_party/libjingle/libjingle.gyp:libjingle',  # TODO(GYP)
21    ]
22    # 'export_dependent_settings': [
23    #   '../third_party/libjingle/libjingle.gyp:libjingle',
24    # ],
25
26    # TODO(GYP): Replace this with a proper dependency on libjingle.
27    direct_dependent_configs = [ "//content:libjingle_stub_config", ]
28  }
29
30  # A library for sending and receiving peer-issued notifications.
31  # GYP version: jingle/jingle.gyp:notifier
32  static_library("notifier") {
33    sources = [
34      "notifier/base/const_communicator.h",
35      "notifier/base/gaia_constants.cc",
36      "notifier/base/gaia_constants.h",
37      "notifier/base/gaia_token_pre_xmpp_auth.cc",
38      "notifier/base/gaia_token_pre_xmpp_auth.h",
39      "notifier/base/notification_method.h",
40      "notifier/base/notification_method.cc",
41      "notifier/base/notifier_options.cc",
42      "notifier/base/notifier_options.h",
43      "notifier/base/notifier_options_util.cc",
44      "notifier/base/notifier_options_util.h",
45      "notifier/base/server_information.cc",
46      "notifier/base/server_information.h",
47      "notifier/base/weak_xmpp_client.cc",
48      "notifier/base/weak_xmpp_client.h",
49      "notifier/base/xmpp_connection.cc",
50      "notifier/base/xmpp_connection.h",
51      "notifier/communicator/connection_settings.cc",
52      "notifier/communicator/connection_settings.h",
53      "notifier/communicator/login.cc",
54      "notifier/communicator/login.h",
55      "notifier/communicator/login_settings.cc",
56      "notifier/communicator/login_settings.h",
57      "notifier/communicator/single_login_attempt.cc",
58      "notifier/communicator/single_login_attempt.h",
59      "notifier/listener/non_blocking_push_client.cc",
60      "notifier/listener/non_blocking_push_client.h",
61      "notifier/listener/notification_constants.cc",
62      "notifier/listener/notification_constants.h",
63      "notifier/listener/notification_defines.cc",
64      "notifier/listener/notification_defines.h",
65      "notifier/listener/push_client_observer.cc",
66      "notifier/listener/push_client_observer.h",
67      "notifier/listener/push_client.cc",
68      "notifier/listener/push_client.h",
69      "notifier/listener/push_notifications_listen_task.cc",
70      "notifier/listener/push_notifications_listen_task.h",
71      "notifier/listener/push_notifications_send_update_task.cc",
72      "notifier/listener/push_notifications_send_update_task.h",
73      "notifier/listener/push_notifications_subscribe_task.cc",
74      "notifier/listener/push_notifications_subscribe_task.h",
75      "notifier/listener/send_ping_task.cc",
76      "notifier/listener/send_ping_task.h",
77      "notifier/listener/xml_element_util.cc",
78      "notifier/listener/xml_element_util.h",
79      "notifier/listener/xmpp_push_client.cc",
80      "notifier/listener/xmpp_push_client.h",
81    ]
82    defines = [
83     "_CRT_SECURE_NO_WARNINGS",
84    ]
85    deps = [
86      "//base",
87      "//net",
88      "//third_party/expat",
89      "//url",
90      ":jingle_glue",
91      # '../third_party/libjingle/libjingle.gyp:libjingle',  # TODO(GYP)
92    ]
93    # 'export_dependent_settings': [
94    #   '../third_party/libjingle/libjingle.gyp:libjingle',
95    # ],
96    # TODO(GYP): Replace this with a proper dependency on libjingle.
97    direct_dependent_configs = [ "//content:libjingle_stub_config", ]
98  }
99
100  # GYP version: jingle/jingle.gyp:notifier_test_util
101  static_library("notifier_test_util") {
102    sources = [
103      "notifier/base/fake_base_task.cc",
104      "notifier/base/fake_base_task.h",
105      "notifier/listener/fake_push_client.cc",
106      "notifier/listener/fake_push_client.h",
107      "notifier/listener/fake_push_client_observer.cc",
108      "notifier/listener/fake_push_client_observer.h",
109    ]
110    deps = [
111      ":notifier",
112      "//base",
113      "//testing/gmock",
114    ]
115  }
116
117  # GYP version: jingle/jingle.gyp:jingle_unittests
118  # TODO(GYP): Convert to executable when its dependencies are linkable.
119  source_set("jingle_unittests") {
120    sources = [
121      "glue/channel_socket_adapter_unittest.cc",
122      "glue/chrome_async_socket_unittest.cc",
123      "glue/fake_ssl_client_socket_unittest.cc",
124      "glue/jingle_glue_mock_objects.cc",
125      "glue/jingle_glue_mock_objects.h",
126      "glue/logging_unittest.cc",
127      "glue/mock_task.cc",
128      "glue/mock_task.h",
129      "glue/proxy_resolving_client_socket_unittest.cc",
130      "glue/pseudotcp_adapter_unittest.cc",
131      "glue/task_pump_unittest.cc",
132      "glue/thread_wrapper_unittest.cc",
133      "notifier/base/weak_xmpp_client_unittest.cc",
134      "notifier/base/xmpp_connection_unittest.cc",
135      "notifier/communicator/connection_settings_unittest.cc",
136      "notifier/communicator/login_settings_unittest.cc",
137      "notifier/communicator/single_login_attempt_unittest.cc",
138      "notifier/listener/non_blocking_push_client_unittest.cc",
139      "notifier/listener/notification_defines_unittest.cc",
140      "notifier/listener/push_client_unittest.cc",
141      "notifier/listener/push_notifications_send_update_task_unittest.cc",
142      "notifier/listener/push_notifications_subscribe_task_unittest.cc",
143      "notifier/listener/send_ping_task_unittest.cc",
144      "notifier/listener/xml_element_util_unittest.cc",
145      "notifier/listener/xmpp_push_client_unittest.cc",
146    ]
147
148    if (is_android) {
149      sources -= [
150        # TODO(jrg):
151        # EXPECT_DEBUG_DEATH() uses features not enabled.
152        # Should we -std=c++0x or -std=gnu++0x?
153        "glue/chrome_async_socket_unittest.cc",
154        "notifier/base/xmpp_connection_unittest.cc",
155      ]
156    }
157
158    deps = [
159      ":jingle_glue",
160      ":notifier",
161      ":notifier_test_util",
162      "//base",
163      "//base/test:run_all_unittests",
164      "//base/test:test_support",
165      "//net",
166      "//net:test_support",
167      "//testing/gmock",
168      "//testing/gtest",
169      # '../third_party/libjingle/libjingle.gyp:libjingle',  # TODO(GYP)
170    ]
171    # 'export_dependent_settings': [
172    #   '../third_party/libjingle/libjingle.gyp:libjingle',
173    # ],
174    # TODO(GYP): Replace this with a proper dependency on libjingle.
175    direct_dependent_configs = [ "//content:libjingle_stub_config", ]
176  }
177} else {
178  # !enable_webrtc and is_android
179  # Stub targets as Android doesn't use libjingle when webrtc is disabled.
180  source_set("jingle_glue") { }
181
182  source_set("jingle_glue_test_util") { }
183
184  # GYP version: jingle/jingle.gyp:notifier
185  static_library("notifier") {
186    sources = [
187      "notifier/base/gaia_constants.cc",
188      "notifier/base/gaia_constants.h",
189      "notifier/base/notification_method.h",
190      "notifier/base/notification_method.cc",
191      "notifier/base/notifier_options.cc",
192      "notifier/base/notifier_options.h",
193    ]
194    deps = [
195      "//base",
196      "//net"
197    ]
198  }
199
200  source_set("notifier_test_util") { }
201}
202