Roll src/third_party/WebKit c63b89c:29324ab (svn 202546:202547)
[chromium-blink-merge.git] / components / gcm_driver.gypi
blob197c15ea49b8421f4e68343d68e3e95d3f466da1
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.
6   'targets': [
7     {
8       # GN version: //components/gcm_driver/common
9       'target_name': 'gcm_driver_common',
10       'type': '<(component)',
11       'include_dirs': [
12         '..',
13       ],
14       'defines': [
15         'GCM_DRIVER_IMPLEMENTATION',
16       ],
17       'sources': [
18          # Note: file list duplicated in GN build.
19         'gcm_driver/common/gcm_driver_export.h',
20         'gcm_driver/common/gcm_messages.cc',
21         'gcm_driver/common/gcm_messages.h',
22       ],
23     },
24     {
25       # GN version: //components/gcm_driver
26       'target_name': 'gcm_driver',
27       'type': 'static_library',
28       'dependencies': [
29         'gcm_driver_common',
30         'gcm_driver_crypto',
31         'os_crypt',
32         '../base/base.gyp:base',
33         '../google_apis/gcm/gcm.gyp:gcm',
34         '../net/net.gyp:net',
35         '../sync/sync.gyp:sync_proto',
36       ],
37       'include_dirs': [
38         '..',
39       ],
40       'sources': [
41          # Note: file list duplicated in GN build.
42         'gcm_driver/android/component_jni_registrar.cc',
43         'gcm_driver/android/component_jni_registrar.h',
44         'gcm_driver/default_gcm_app_handler.cc',
45         'gcm_driver/default_gcm_app_handler.h',
46         'gcm_driver/gcm_account_mapper.cc',
47         'gcm_driver/gcm_account_mapper.h',
48         'gcm_driver/gcm_account_tracker.cc',
49         'gcm_driver/gcm_account_tracker.h',
50         'gcm_driver/gcm_activity.cc',
51         'gcm_driver/gcm_activity.h',
52         'gcm_driver/gcm_app_handler.cc',
53         'gcm_driver/gcm_app_handler.h',
54         'gcm_driver/gcm_backoff_policy.cc',
55         'gcm_driver/gcm_backoff_policy.h',
56         'gcm_driver/gcm_channel_status_request.cc',
57         'gcm_driver/gcm_channel_status_request.h',
58         'gcm_driver/gcm_channel_status_syncer.cc',
59         'gcm_driver/gcm_channel_status_syncer.h',
60         'gcm_driver/gcm_client.cc',
61         'gcm_driver/gcm_client.h',
62         'gcm_driver/gcm_client_factory.cc',
63         'gcm_driver/gcm_client_factory.h',
64         'gcm_driver/gcm_client_impl.cc',
65         'gcm_driver/gcm_client_impl.h',
66         'gcm_driver/gcm_connection_observer.cc',
67         'gcm_driver/gcm_connection_observer.h',
68         'gcm_driver/gcm_delayed_task_controller.cc',
69         'gcm_driver/gcm_delayed_task_controller.h',
70         'gcm_driver/gcm_driver.cc',
71         'gcm_driver/gcm_driver.h',
72         'gcm_driver/gcm_driver_android.cc',
73         'gcm_driver/gcm_driver_android.h',
74         'gcm_driver/gcm_driver_desktop.cc',
75         'gcm_driver/gcm_driver_desktop.h',
76         'gcm_driver/gcm_internals_constants.cc',
77         'gcm_driver/gcm_internals_constants.h',
78         'gcm_driver/gcm_stats_recorder_impl.cc',
79         'gcm_driver/gcm_stats_recorder_impl.h',
80         'gcm_driver/registration_info.cc',
81         'gcm_driver/registration_info.h',
82         'gcm_driver/system_encryptor.cc',
83         'gcm_driver/system_encryptor.h',
84       ],
85       'conditions': [
86         ['OS == "android"', {
87           'dependencies': [
88             'gcm_driver_jni_headers',
89           ],
90           'dependencies!': [
91             '../google_apis/gcm/gcm.gyp:gcm',
92           ],
93           'sources!': [
94             'gcm_driver/gcm_account_mapper.cc',
95             'gcm_driver/gcm_account_mapper.h',
96             'gcm_driver/gcm_channel_status_request.cc',
97             'gcm_driver/gcm_channel_status_request.h',
98             'gcm_driver/gcm_channel_status_syncer.cc',
99             'gcm_driver/gcm_channel_status_syncer.h',
100             'gcm_driver/gcm_client_factory.cc',
101             'gcm_driver/gcm_client_factory.h',
102             'gcm_driver/gcm_client_impl.cc',
103             'gcm_driver/gcm_client_impl.h',
104             'gcm_driver/gcm_driver_desktop.cc',
105             'gcm_driver/gcm_driver_desktop.h',
106             'gcm_driver/gcm_stats_recorder_impl.cc',
107             'gcm_driver/gcm_stats_recorder_impl.h',
108           ],
109         }],
110         ['chromeos == 1', {
111           'dependencies': [
112             'timers',
113           ],
114         }],
115       ],
116     },
117     {
118       # GN version: //components/gcm_driver:test_support
119       'target_name': 'gcm_driver_test_support',
120       'type': 'static_library',
121       'dependencies': [
122         'gcm_driver',
123         '../base/base.gyp:base',
124         '../google_apis/gcm/gcm.gyp:gcm_test_support',
125         '../testing/gtest.gyp:gtest',
126       ],
127       'include_dirs': [
128         '..',
129       ],
130       'sources': [
131         # Note: file list duplicated in GN build.
132         'gcm_driver/fake_gcm_app_handler.cc',
133         'gcm_driver/fake_gcm_app_handler.h',
134         'gcm_driver/fake_gcm_client.cc',
135         'gcm_driver/fake_gcm_client.h',
136         'gcm_driver/fake_gcm_client_factory.cc',
137         'gcm_driver/fake_gcm_client_factory.h',
138         'gcm_driver/fake_gcm_driver.cc',
139         'gcm_driver/fake_gcm_driver.h',
140       ],
141       'conditions': [
142         ['OS == "android"', {
143           'dependencies!': [
144             '../google_apis/gcm/gcm.gyp:gcm_test_support',
145           ],
146           'sources!': [
147             'gcm_driver/fake_gcm_client.cc',
148             'gcm_driver/fake_gcm_client.h',
149             'gcm_driver/fake_gcm_client_factory.cc',
150             'gcm_driver/fake_gcm_client_factory.h',
151           ],
152         }],
153       ],
154     },
155     {
156       # GN version: //components/gcm_driver/instance_id
157       'target_name': 'instance_id',
158       'type': 'static_library',
159       'include_dirs': [
160         '..',
161       ],
162       'sources': [
163         # Note: file list duplicated in GN build.
164         'gcm_driver/instance_id/instance_id.cc',
165         'gcm_driver/instance_id/instance_id.h',
166         'gcm_driver/instance_id/instance_id_android.cc',
167         'gcm_driver/instance_id/instance_id_android.h',
168         'gcm_driver/instance_id/instance_id_driver.cc',
169         'gcm_driver/instance_id/instance_id_driver.h',
170         'gcm_driver/instance_id/instance_id_impl.cc',
171         'gcm_driver/instance_id/instance_id_impl.h',
172       ],
173       'conditions': [
174         ['OS == "android"', {
175           'sources!': [
176             'gcm_driver/instance_id/instance_id_impl.cc',
177             'gcm_driver/instance_id/instance_id_impl.h',
178           ],
179         }],
180       ],
181     },
182     {
183       # GN version: //components/gcm_driver/instance_id:test_support
184       'target_name': 'instance_id_test_support',
185       'type': 'static_library',
186       'dependencies': [
187         'gcm_driver_test_support',
188         'instance_id',
189         '../testing/gtest.gyp:gtest',
190       ],
191       'include_dirs': [
192         '..',
193       ],
194       'sources': [
195         # Note: file list duplicated in GN build.
196         'gcm_driver/instance_id/fake_gcm_driver_for_instance_id.cc',
197         'gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h',
198       ],
199     },
200     {
201       # GN version: //components/gcm_driver/crypto
202       'target_name': 'gcm_driver_crypto',
203       'type': 'static_library',
204       'dependencies': [
205         'gcm_driver_crypto_proto',
206         '../base/base.gyp:base',
207         '../components/components.gyp:leveldb_proto',
208         '../crypto/crypto.gyp:crypto',
209       ],
210       'include_dirs': [
211         '..',
212       ],
213       'sources': [
214         # Note: file list duplicated in GN build.
215         'gcm_driver/crypto/gcm_encryption_provider.cc',
216         'gcm_driver/crypto/gcm_encryption_provider.h',
217         'gcm_driver/crypto/gcm_key_store.cc',
218         'gcm_driver/crypto/gcm_key_store.h',
219         'gcm_driver/crypto/gcm_message_cryptographer.cc',
220         'gcm_driver/crypto/gcm_message_cryptographer.h',
221         'gcm_driver/crypto/gcm_message_cryptographer_nss.cc',
222         'gcm_driver/crypto/gcm_message_cryptographer_openssl.cc',
223       ],
224       'conditions': [
225         ['use_openssl==1', {
226           'sources!': [
227             'gcm_driver/crypto/gcm_message_cryptographer_nss.cc',
228           ],
229           'dependencies': [
230             '../third_party/boringssl/boringssl.gyp:boringssl',
231           ],
232         }, {
233           'sources!': [
234             'gcm_driver/crypto/gcm_message_cryptographer_openssl.cc',
235           ],
236         }],
237       ],
238     },
239     {
240       # GN version: //components/gcm_driver/crypto/proto
241       'target_name': 'gcm_driver_crypto_proto',
242       'type': 'static_library',
243       'sources': [
244         'gcm_driver/crypto/proto/gcm_encryption_data.proto',
245       ],
246       'variables': {
247         'proto_in_dir': 'gcm_driver/crypto/proto',
248         'proto_out_dir': 'components/gcm_driver/crypto/proto',
249       },
250       'includes': [ '../build/protoc.gypi' ],
251     },
252   ],
253   'conditions': [
254     ['OS == "android"', {
255       'targets': [
256         {
257           # GN version: //components/gcm_driver/android:gcm_driver_java
258           'target_name': 'gcm_driver_java',
259           'type': 'none',
260           'dependencies': [
261             '../base/base.gyp:base',
262             # TODO(johnme): Fix the layering violation of depending on content/
263             '../content/content.gyp:content_java',
264             '../sync/sync.gyp:sync_java',
265           ],
266           'variables': {
267             'java_in_dir': 'gcm_driver/android/java',
268           },
269           'includes': [ '../build/java.gypi' ],
270         },
271         {
272           # GN version: //components/gcm_driver/android:jni_headers
273           'target_name': 'gcm_driver_jni_headers',
274           'type': 'none',
275           'sources': [
276             'gcm_driver/android/java/src/org/chromium/components/gcm_driver/GCMDriver.java',
277           ],
278           'variables': {
279             'jni_gen_package': 'components/gcm_driver',
280           },
281           'includes': [ '../build/jni_generator.gypi' ],
282         },
283       ],
284      },
285     ],
286   ],