Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: sync/sync.gyp

Issue 11412211: [sync] Componentize sync: Part Final: Target 'sync' is now its own component (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Component build working on all platforms Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2012 The Chromium Authors. All rights reserved. 1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 { 5 {
6 'variables': { 6 'variables': {
7 'chromium_code': 1, 7 'chromium_code': 1,
8 }, 8 },
9 'targets': [ 9
10 # The core sync library. 10 'includes': [
11 { 11 'sync_tests.gypi',
12 'target_name': 'sync_core', 12 ],
13 'type': 'static_library', 13
14 'variables': { 'enable_wexit_time_destructors': 1, }, 14 'conditions': [
15 'include_dirs': [ 15 # In component mode, we build the public 'sync' target into a single DLL.
16 '..', 16 # However, in static mode, we need to build sync out of multiple static
17 ], 17 # library targets in order to prevent dependencies from getting introduced
18 'defines': [ 18 # upstream unnecessarily.
19 'SYNC_IMPLEMENTATION', 19 ['component=="static_library"', {
20 ], 20 'targets': [
21 'dependencies': [ 21 # The public sync static library target.
22 '../base/base.gyp:base', 22 {
23 '../build/temp_gyp/googleurl.gyp:googleurl', 23 'target_name': 'sync',
24 '../crypto/crypto.gyp:crypto', 24 'type': 'none',
25 '../google_apis/google_apis.gyp:google_apis',
26 '../net/net.gyp:net',
27 '../sql/sql.gyp:sql',
28 'protocol/sync_proto.gyp:sync_proto',
29 ],
30 'conditions': [
31 ['OS=="linux" and chromeos==1', {
32 # Required by get_session_name.cc on Chrome OS.
33 'dependencies': [ 25 'dependencies': [
34 '../chromeos/chromeos.gyp:chromeos', 26 'sync_api',
35 ], 27 'sync_core',
36 }], 28 'sync_internal_api',
37 ], 29 'sync_notifier',
38 'export_dependent_settings': [ 30 'sync_proto',
39 # Propagate sync_proto since our headers include its generated
40 # files.
41 'protocol/sync_proto.gyp:sync_proto',
42 ],
43 'sources': [
44 'base/sync_export.h',
45 'engine/all_status.cc',
46 'engine/all_status.h',
47 'engine/apply_control_data_updates.cc',
48 'engine/apply_control_data_updates.h',
49 'engine/apply_updates_and_resolve_conflicts_command.cc',
50 'engine/apply_updates_and_resolve_conflicts_command.h',
51 'engine/backoff_delay_provider.cc',
52 'engine/backoff_delay_provider.h',
53 'engine/build_commit_command.cc',
54 'engine/build_commit_command.h',
55 'engine/commit.cc',
56 'engine/commit.h',
57 'engine/conflict_resolver.cc',
58 'engine/conflict_resolver.h',
59 'engine/conflict_util.cc',
60 'engine/conflict_util.h',
61 'engine/download_updates_command.cc',
62 'engine/download_updates_command.h',
63 'engine/get_commit_ids_command.cc',
64 'engine/get_commit_ids_command.h',
65 'engine/model_changing_syncer_command.cc',
66 'engine/model_changing_syncer_command.h',
67 'engine/net/server_connection_manager.cc',
68 'engine/net/server_connection_manager.h',
69 'engine/net/url_translator.cc',
70 'engine/net/url_translator.h',
71 'engine/nudge_source.cc',
72 'engine/nudge_source.h',
73 'engine/process_commit_response_command.cc',
74 'engine/process_commit_response_command.h',
75 'engine/process_updates_command.cc',
76 'engine/process_updates_command.h',
77 'engine/store_timestamps_command.cc',
78 'engine/store_timestamps_command.h',
79 'engine/sync_engine_event.cc',
80 'engine/sync_engine_event.h',
81 'engine/sync_scheduler.cc',
82 'engine/sync_scheduler.h',
83 'engine/sync_scheduler_impl.cc',
84 'engine/sync_scheduler_impl.h',
85 'engine/sync_session_job.cc',
86 'engine/sync_session_job.h',
87 'engine/syncer.cc',
88 'engine/syncer.h',
89 'engine/syncer_command.cc',
90 'engine/syncer_command.h',
91 'engine/syncer_proto_util.cc',
92 'engine/syncer_proto_util.h',
93 'engine/syncer_types.h',
94 'engine/syncer_util.cc',
95 'engine/syncer_util.h',
96 'engine/throttled_data_type_tracker.cc',
97 'engine/throttled_data_type_tracker.h',
98 'engine/traffic_logger.cc',
99 'engine/traffic_logger.h',
100 'engine/traffic_recorder.cc',
101 'engine/traffic_recorder.h',
102 'engine/update_applicator.cc',
103 'engine/update_applicator.h',
104 'js/js_arg_list.cc',
105 'js/js_arg_list.h',
106 'js/js_backend.h',
107 'js/js_controller.h',
108 'js/js_event_details.cc',
109 'js/js_event_details.h',
110 'js/js_event_handler.h',
111 'js/js_reply_handler.h',
112 'js/sync_js_controller.cc',
113 'js/sync_js_controller.h',
114 'protocol/proto_enum_conversions.cc',
115 'protocol/proto_enum_conversions.h',
116 'protocol/proto_value_conversions.cc',
117 'protocol/proto_value_conversions.h',
118 'protocol/sync_protocol_error.cc',
119 'protocol/sync_protocol_error.h',
120 'sessions/debug_info_getter.h',
121 'sessions/ordered_commit_set.cc',
122 'sessions/ordered_commit_set.h',
123 'sessions/status_controller.cc',
124 'sessions/status_controller.h',
125 'sessions/sync_session.cc',
126 'sessions/sync_session.h',
127 'sessions/sync_session_context.cc',
128 'sessions/sync_session_context.h',
129 'syncable/blob.h',
130 'syncable/delete_journal.cc',
131 'syncable/delete_journal.h',
132 'syncable/dir_open_result.h',
133 'syncable/directory.cc',
134 'syncable/directory.h',
135 'syncable/directory_backing_store.cc',
136 'syncable/directory_backing_store.h',
137 'syncable/directory_change_delegate.h',
138 'syncable/entry.cc',
139 'syncable/entry.h',
140 'syncable/entry_kernel.cc',
141 'syncable/entry_kernel.h',
142 'syncable/in_memory_directory_backing_store.cc',
143 'syncable/in_memory_directory_backing_store.h',
144 'syncable/invalid_directory_backing_store.cc',
145 'syncable/invalid_directory_backing_store.h',
146 'syncable/metahandle_set.h',
147 'syncable/model_type.cc',
148 'syncable/mutable_entry.cc',
149 'syncable/mutable_entry.h',
150 'syncable/nigori_handler.cc',
151 'syncable/nigori_handler.h',
152 'syncable/nigori_util.cc',
153 'syncable/nigori_util.h',
154 'syncable/on_disk_directory_backing_store.cc',
155 'syncable/on_disk_directory_backing_store.h',
156 'syncable/scoped_kernel_lock.h',
157 'syncable/syncable-inl.h',
158 'syncable/syncable_base_transaction.cc',
159 'syncable/syncable_base_transaction.h',
160 'syncable/syncable_changes_version.h',
161 'syncable/syncable_columns.h',
162 'syncable/syncable_enum_conversions.cc',
163 'syncable/syncable_enum_conversions.h',
164 'syncable/syncable_id.cc',
165 'syncable/syncable_id.h',
166 'syncable/syncable_proto_util.cc',
167 'syncable/syncable_proto_util.h',
168 'syncable/syncable_read_transaction.cc',
169 'syncable/syncable_read_transaction.h',
170 'syncable/syncable_util.cc',
171 'syncable/syncable_util.h',
172 'syncable/syncable_write_transaction.cc',
173 'syncable/syncable_write_transaction.h',
174 'syncable/transaction_observer.h',
175 'syncable/write_transaction_info.cc',
176 'syncable/write_transaction_info.h',
177 'util/cryptographer.cc',
178 'util/cryptographer.h',
179
180 # TODO(akalin): Figure out a better place to put
181 # data_encryption_win*; it's also used by autofill.
182 'util/data_encryption_win.cc',
183 'util/data_encryption_win.h',
184
185 'util/data_type_histogram.h',
186 'util/encryptor.h',
187 'util/extensions_activity_monitor.cc',
188 'util/extensions_activity_monitor.h',
189 'util/get_session_name.cc',
190 'util/get_session_name.h',
191 'util/get_session_name_ios.mm',
192 'util/get_session_name_ios.h',
193 'util/get_session_name_mac.mm',
194 'util/get_session_name_mac.h',
195 'util/get_session_name_win.cc',
196 'util/get_session_name_win.h',
197 'util/logging.cc',
198 'util/logging.h',
199 'util/nigori.cc',
200 'util/nigori.h',
201 'util/time.cc',
202 'util/time.h',
203 ],
204 },
205
206 # The sync notifications library.
207 {
208 'target_name': 'sync_notifier',
209 'type': 'static_library',
210 'variables': { 'enable_wexit_time_destructors': 1, },
211 'include_dirs': [
212 '..',
213 ],
214 'dependencies': [
215 '../base/base.gyp:base',
216 '../jingle/jingle.gyp:jingle_glue',
217 '../jingle/jingle.gyp:notifier',
218 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
219 # TODO(akalin): Remove this (http://crbug.com/133352).
220 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n_proto_cpp',
221 'sync_core',
222 ],
223 'export_dependent_settings': [
224 '../jingle/jingle.gyp:notifier',
225 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
226 ],
227 'sources': [
228 'notifier/invalidation_handler.h',
229 'notifier/invalidation_state_tracker.cc',
230 'notifier/invalidation_state_tracker.h',
231 'notifier/invalidation_util.cc',
232 'notifier/invalidation_util.h',
233 'notifier/invalidator_factory.cc',
234 'notifier/invalidator_factory.h',
235 'notifier/invalidator.h',
236 'notifier/invalidator_registrar.cc',
237 'notifier/invalidator_registrar.h',
238 'notifier/invalidator_state.cc',
239 'notifier/invalidator_state.h',
240 'notifier/object_id_invalidation_map.cc',
241 'notifier/object_id_invalidation_map.h',
242 ],
243 'conditions': [
244 ['OS == "ios"', {
245 'sources!': [
246 'notifier/invalidator_factory.cc',
247 ],
248 }],
249 ['OS != "android" and OS != "ios"', {
250 'sources': [
251 'notifier/ack_tracker.cc',
252 'notifier/ack_tracker.h',
253 'notifier/invalidation_notifier.cc',
254 'notifier/invalidation_notifier.h',
255 'notifier/non_blocking_invalidator.cc',
256 'notifier/non_blocking_invalidator.h',
257 'notifier/p2p_invalidator.cc',
258 'notifier/p2p_invalidator.h',
259 'notifier/push_client_channel.cc',
260 'notifier/push_client_channel.h',
261 'notifier/registration_manager.cc',
262 'notifier/registration_manager.h',
263 'notifier/state_writer.h',
264 'notifier/sync_invalidation_listener.cc',
265 'notifier/sync_invalidation_listener.h',
266 'notifier/sync_system_resources.cc',
267 'notifier/sync_system_resources.h',
268 ],
269 }],
270 ['OS != "ios"', {
271 'dependencies': [
272 '../third_party/libjingle/libjingle.gyp:libjingle',
273 ],
274 }],
275 ],
276 },
277 # The sync internal API library.
278 {
279 'target_name': 'sync_internal_api',
280 'type': 'static_library',
281 'variables': { 'enable_wexit_time_destructors': 1, },
282 'include_dirs': [
283 '..',
284 ],
285 'dependencies': [
286 '../base/base.gyp:base',
287 '../build/temp_gyp/googleurl.gyp:googleurl',
288 '../net/net.gyp:net',
289 'protocol/sync_proto.gyp:sync_proto',
290 'sync_core',
291 'sync_notifier',
292 ],
293 'export_dependent_settings': [
294 # Propagate sync_proto since our headers include its generated
295 # files.
296 'protocol/sync_proto.gyp:sync_proto',
297 'sync_core',
298 ],
299 'sources': [
300 'internal_api/base_node.cc',
301 'internal_api/base_transaction.cc',
302 'internal_api/change_record.cc',
303 'internal_api/change_reorder_buffer.cc',
304 'internal_api/change_reorder_buffer.h',
305 'internal_api/debug_info_event_listener.cc',
306 'internal_api/debug_info_event_listener.h',
307 'internal_api/http_bridge.cc',
308 'internal_api/internal_components_factory_impl.cc',
309 'internal_api/js_mutation_event_observer.cc',
310 'internal_api/js_mutation_event_observer.h',
311 'internal_api/js_sync_encryption_handler_observer.cc',
312 'internal_api/js_sync_encryption_handler_observer.h',
313 'internal_api/js_sync_manager_observer.cc',
314 'internal_api/js_sync_manager_observer.h',
315 'internal_api/public/base_node.h',
316 'internal_api/public/base_transaction.h',
317 'internal_api/public/base/enum_set.h',
318 'internal_api/public/base/invalidation.cc',
319 'internal_api/public/base/invalidation.h',
320 'internal_api/public/base/model_type_invalidation_map.cc',
321 'internal_api/public/base/model_type_invalidation_map.h',
322 'internal_api/public/base/model_type.h',
323 'internal_api/public/base/node_ordinal.cc',
324 'internal_api/public/base/node_ordinal.h',
325 'internal_api/public/base/ordinal.h',
326 'internal_api/public/base/progress_marker_map.cc',
327 'internal_api/public/base/progress_marker_map.h',
328 'internal_api/public/change_record.h',
329 'internal_api/public/configure_reason.h',
330 'internal_api/public/data_type_association_stats.cc',
331 'internal_api/public/data_type_association_stats.h',
332 'internal_api/public/data_type_debug_info_listener.h',
333 'internal_api/public/engine/model_safe_worker.cc',
334 'internal_api/public/engine/model_safe_worker.h',
335 'internal_api/public/engine/passive_model_worker.cc',
336 'internal_api/public/engine/passive_model_worker.h',
337 'internal_api/public/engine/polling_constants.cc',
338 'internal_api/public/engine/polling_constants.h',
339 'internal_api/public/engine/sync_status.cc',
340 'internal_api/public/engine/sync_status.h',
341 'internal_api/public/http_bridge.h',
342 'internal_api/public/http_post_provider_factory.h',
343 'internal_api/public/http_post_provider_interface.h',
344 'internal_api/public/internal_components_factory_impl.h',
345 'internal_api/public/internal_components_factory.h',
346 'internal_api/public/read_node.h',
347 'internal_api/public/read_transaction.h',
348 'internal_api/public/sessions/model_neutral_state.cc',
349 'internal_api/public/sessions/model_neutral_state.h',
350 'internal_api/public/sessions/sync_session_snapshot.cc',
351 'internal_api/public/sessions/sync_session_snapshot.h',
352 'internal_api/public/sessions/sync_source_info.cc',
353 'internal_api/public/sessions/sync_source_info.h',
354 'internal_api/public/sync_encryption_handler.cc',
355 'internal_api/public/sync_encryption_handler.h',
356 'internal_api/public/sync_manager_factory.h',
357 'internal_api/public/sync_manager.cc',
358 'internal_api/public/sync_manager.h',
359 'internal_api/public/user_share.h',
360 'internal_api/public/util/experiments.h',
361 'internal_api/public/util/immutable.h',
362 'internal_api/public/util/report_unrecoverable_error_function.h',
363 'internal_api/public/util/sync_string_conversions.cc',
364 'internal_api/public/util/sync_string_conversions.h',
365 'internal_api/public/util/syncer_error.cc',
366 'internal_api/public/util/syncer_error.h',
367 'internal_api/public/util/unrecoverable_error_handler.h',
368 'internal_api/public/util/unrecoverable_error_info.cc',
369 'internal_api/public/util/unrecoverable_error_info.h',
370 'internal_api/public/util/weak_handle.cc',
371 'internal_api/public/util/weak_handle.h',
372 'internal_api/public/write_node.h',
373 'internal_api/public/write_transaction.h',
374 'internal_api/read_node.cc',
375 'internal_api/read_transaction.cc',
376 'internal_api/sync_encryption_handler_impl.cc',
377 'internal_api/sync_encryption_handler_impl.h',
378 'internal_api/sync_manager_factory.cc',
379 'internal_api/sync_manager_impl.cc',
380 'internal_api/sync_manager_impl.h',
381 'internal_api/syncapi_internal.cc',
382 'internal_api/syncapi_internal.h',
383 'internal_api/syncapi_server_connection_manager.cc',
384 'internal_api/syncapi_server_connection_manager.h',
385 'internal_api/user_share.cc',
386 'internal_api/write_node.cc',
387 'internal_api/write_transaction.cc',
388 ],
389 },
390
391 # The sync external API library.
392 {
393 'target_name': 'sync_api',
394 'type': 'static_library',
395 'variables': { 'enable_wexit_time_destructors': 1, },
396 'include_dirs': [
397 '..',
398 ],
399 'dependencies': [
400 '../base/base.gyp:base',
401 'protocol/sync_proto.gyp:sync_proto',
402 'sync_internal_api',
403 ],
404 # We avoid including header files from sync_proto in our public
405 # header files so we don't need to export its settings.
406 'sources': [
407 'api/string_ordinal.h',
408 'api/syncable_service.cc',
409 'api/syncable_service.h',
410 'api/sync_data.h',
411 'api/sync_data.cc',
412 'api/sync_change.h',
413 'api/sync_change.cc',
414 'api/sync_change_processor.h',
415 'api/sync_change_processor.cc',
416 'api/sync_error.h',
417 'api/sync_error.cc',
418 'api/sync_error_factory.h',
419 'api/sync_error_factory.cc',
420 'api/sync_merge_result.h',
421 'api/sync_merge_result.cc',
422 'api/time.h',
423 ],
424 },
425
426 # The componentized sync library.
427 {
428 'target_name': 'sync_component',
429 # TODO(rsimha): Change the type of this target to '<(component)' after
430 # exporting dependencies on 'sync_proto'.
431 'type': 'none',
432 'dependencies': [
433 'sync_api',
434 'sync_core',
435 'sync_notifier',
436 'sync_internal_api',
437 ],
438 'export_dependent_settings': [
439 'sync_api',
440 'sync_core',
441 'sync_notifier',
442 'sync_internal_api',
443 ],
444 },
445
446 # The public sync target. This depends on 'sync_component' and
447 # 'sync_proto' separately since 'sync_proto' isn't exportable from
448 # 'sync_component' (for now).
449 {
450 'target_name': 'sync',
451 'type': 'none',
452 'dependencies': [
453 'sync_component',
454 'protocol/sync_proto.gyp:sync_proto',
455 ],
456 'export_dependent_settings': [
457 'sync_component',
458 'protocol/sync_proto.gyp:sync_proto',
459 ],
460 },
461
462 # Test support files for the 'sync_core' target.
463 {
464 'target_name': 'test_support_sync_core',
465 'type': 'static_library',
466 'variables': { 'enable_wexit_time_destructors': 1, },
467 'include_dirs': [
468 '..',
469 ],
470 'dependencies': [
471 '../base/base.gyp:base',
472 '../testing/gmock.gyp:gmock',
473 '../testing/gtest.gyp:gtest',
474 'protocol/sync_proto.gyp:sync_proto',
475 'sync_core',
476 ],
477 'export_dependent_settings': [
478 '../testing/gmock.gyp:gmock',
479 '../testing/gtest.gyp:gtest',
480 'protocol/sync_proto.gyp:sync_proto',
481 'sync_core',
482 ],
483 'sources': [
484 'js/js_test_util.cc',
485 'js/js_test_util.h',
486 'sessions/test_util.cc',
487 'sessions/test_util.h',
488 'syncable/syncable_mock.cc',
489 'syncable/syncable_mock.h',
490 'test/callback_counter.h',
491 'test/engine/fake_model_worker.cc',
492 'test/engine/fake_model_worker.h',
493 'test/engine/fake_sync_scheduler.cc',
494 'test/engine/fake_sync_scheduler.h',
495 'test/engine/mock_connection_manager.cc',
496 'test/engine/mock_connection_manager.h',
497 'test/engine/syncer_command_test.cc',
498 'test/engine/syncer_command_test.h',
499 'test/engine/test_directory_setter_upper.cc',
500 'test/engine/test_directory_setter_upper.h',
501 'test/engine/test_id_factory.h',
502 'test/engine/test_syncable_utils.cc',
503 'test/engine/test_syncable_utils.h',
504 'test/fake_encryptor.cc',
505 'test/fake_encryptor.h',
506 'test/fake_sync_encryption_handler.h',
507 'test/fake_sync_encryption_handler.cc',
508 'test/fake_extensions_activity_monitor.cc',
509 'test/fake_extensions_activity_monitor.h',
510 'test/test_transaction_observer.cc',
511 'test/test_transaction_observer.h',
512 'test/null_directory_change_delegate.cc',
513 'test/null_directory_change_delegate.h',
514 'test/null_transaction_observer.cc',
515 'test/null_transaction_observer.h',
516 'test/sessions/test_scoped_session_event_listener.h',
517 'test/test_directory_backing_store.cc',
518 'test/test_directory_backing_store.h',
519 'util/test_unrecoverable_error_handler.cc',
520 'util/test_unrecoverable_error_handler.h',
521 ],
522 },
523
524 # Test support files for the 'sync_notifier' target.
525 {
526 'target_name': 'test_support_sync_notifier',
527 'type': 'static_library',
528 'include_dirs': [
529 '..',
530 ],
531 'dependencies': [
532 '../testing/gmock.gyp:gmock',
533 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n_proto_cpp',
534 'sync_internal_api',
535 'sync_notifier',
536 ],
537 'export_dependent_settings': [
538 '../testing/gmock.gyp:gmock',
539 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n_proto_cpp',
540 'sync_internal_api',
541 'sync_notifier',
542 ],
543 'sources': [
544 'notifier/fake_invalidation_state_tracker.cc',
545 'notifier/fake_invalidation_state_tracker.h',
546 'notifier/fake_invalidator.cc',
547 'notifier/fake_invalidator.h',
548 'notifier/fake_invalidation_handler.cc',
549 'notifier/fake_invalidation_handler.h',
550 'notifier/invalidator_test_template.cc',
551 'notifier/invalidator_test_template.h',
552 'notifier/object_id_invalidation_map_test_util.cc',
553 'notifier/object_id_invalidation_map_test_util.h',
554 ],
555 },
556
557 # Test support files for the 'sync_internal_api' target.
558 {
559 'target_name': 'test_support_sync_internal_api',
560 'type': 'static_library',
561 'variables': { 'enable_wexit_time_destructors': 1, },
562 'include_dirs': [
563 '..',
564 ],
565 'dependencies': [
566 '../base/base.gyp:base',
567 '../testing/gtest.gyp:gtest',
568 'protocol/sync_proto.gyp:sync_proto',
569 'sync_core',
570 'sync_internal_api',
571 'sync_notifier',
572 'test_support_sync_core',
573 ],
574 'export_dependent_settings': [
575 '../testing/gtest.gyp:gtest',
576 'protocol/sync_proto.gyp:sync_proto',
577 'sync_core',
578 'sync_internal_api',
579 'sync_notifier',
580 'test_support_sync_core',
581 ],
582 'sources': [
583 'internal_api/public/base/invalidation_test_util.cc',
584 'internal_api/public/base/invalidation_test_util.h',
585 'internal_api/public/base/model_type_invalidation_map_test_util.cc',
586 'internal_api/public/base/model_type_invalidation_map_test_util.h',
587 'internal_api/public/base/model_type_test_util.cc',
588 'internal_api/public/base/model_type_test_util.h',
589 'internal_api/public/test/fake_sync_manager.h',
590 'internal_api/public/test/test_entry_factory.h',
591 'internal_api/public/test/test_internal_components_factory.h',
592 'internal_api/public/test/test_user_share.h',
593 'internal_api/test/fake_sync_manager.cc',
594 'internal_api/test/test_entry_factory.cc',
595 'internal_api/test/test_internal_components_factory.cc',
596 'internal_api/test/test_user_share.cc',
597 ],
598 },
599
600 # Test support files for the 'sync_api' target.
601 {
602 'target_name': 'test_support_sync_api',
603 'type': 'static_library',
604 'include_dirs': [
605 '..',
606 ],
607 'dependencies': [
608 '../testing/gmock.gyp:gmock',
609 'sync_api',
610 ],
611 'export_dependent_settings': [
612 '../testing/gmock.gyp:gmock',
613 'sync_api',
614 ],
615 'sources': [
616 'api/fake_syncable_service.cc',
617 'api/fake_syncable_service.h',
618 'api/sync_error_factory_mock.cc',
619 'api/sync_error_factory_mock.h',
620 ],
621 },
622
623 # Unit tests for the 'sync_core' target. This cannot be a static
624 # library because the unit test files have to be compiled directly
625 # into the executable, so we push the target files to the
626 # depending executable target via direct_dependent_settings.
627 {
628 'target_name': 'sync_core_tests',
629 'type': 'none',
630 # We only want unit test executables to include this target.
631 'suppress_wildcard': 1,
632 'dependencies': [
633 '../base/base.gyp:base',
634 '../testing/gmock.gyp:gmock',
635 '../testing/gtest.gyp:gtest',
636 'protocol/sync_proto.gyp:sync_proto',
637 'sync_core',
638 'test_support_sync_core',
639 ],
640 # Propagate all dependencies since the actual compilation
641 # happens in the dependents.
642 'export_dependent_settings': [
643 '../base/base.gyp:base',
644 '../testing/gmock.gyp:gmock',
645 '../testing/gtest.gyp:gtest',
646 'protocol/sync_proto.gyp:sync_proto',
647 'sync_core',
648 'test_support_sync_core',
649 ],
650 'direct_dependent_settings': {
651 'include_dirs': [
652 '..',
653 ],
654 'sources': [
655 'internal_api/public/base/enum_set_unittest.cc',
656 'internal_api/public/base/model_type_invalidation_map_unittest.cc',
657 'internal_api/public/base/node_ordinal_unittest.cc',
658 'internal_api/public/base/ordinal_unittest.cc',
659 'internal_api/public/engine/model_safe_worker_unittest.cc',
660 'internal_api/public/util/immutable_unittest.cc',
661 'internal_api/public/util/weak_handle_unittest.cc',
662 'engine/apply_control_data_updates_unittest.cc',
663 'engine/apply_updates_and_resolve_conflicts_command_unittest.cc',
664 'engine/backoff_delay_provider_unittest.cc',
665 'engine/build_commit_command_unittest.cc',
666 'engine/download_updates_command_unittest.cc',
667 'engine/model_changing_syncer_command_unittest.cc',
668 'engine/process_commit_response_command_unittest.cc',
669 'engine/process_updates_command_unittest.cc',
670 'engine/store_timestamps_command_unittest.cc',
671 'engine/sync_session_job_unittest.cc',
672 'engine/sync_scheduler_unittest.cc',
673 'engine/sync_scheduler_whitebox_unittest.cc',
674 'engine/syncer_proto_util_unittest.cc',
675 'engine/syncer_unittest.cc',
676 'engine/throttled_data_type_tracker_unittest.cc',
677 'engine/traffic_recorder_unittest.cc',
678 'js/js_arg_list_unittest.cc',
679 'js/js_event_details_unittest.cc',
680 'js/sync_js_controller_unittest.cc',
681 'protocol/proto_enum_conversions_unittest.cc',
682 'protocol/proto_value_conversions_unittest.cc',
683 'sessions/ordered_commit_set_unittest.cc',
684 'sessions/status_controller_unittest.cc',
685 'sessions/sync_session_unittest.cc',
686 'syncable/directory_backing_store_unittest.cc',
687 'syncable/model_type_unittest.cc',
688 'syncable/nigori_util_unittest.cc',
689 'syncable/syncable_enum_conversions_unittest.cc',
690 'syncable/syncable_id_unittest.cc',
691 'syncable/syncable_unittest.cc',
692 'syncable/syncable_util_unittest.cc',
693 'util/cryptographer_unittest.cc',
694 'util/data_encryption_win_unittest.cc',
695 'util/data_type_histogram_unittest.cc',
696 'util/get_session_name_unittest.cc',
697 'util/nigori_unittest.cc',
698 'util/protobuf_unittest.cc',
699 ],
700 'conditions': [
701 ['OS == "ios" and coverage != 0', {
702 'sources!': [
703 # These sources can't be built with coverage due to a toolchain
704 # bug: http://openradar.appspot.com/radar?id=1499403
705 'engine/syncer_unittest.cc',
706
707 # These tests crash when run with coverage turned on due to an
708 # issue with llvm_gcda_increment_indirect_counter:
709 # http://crbug.com/156058
710 'syncable/directory_backing_store_unittest.cc',
711 ],
712 }],
713 ],
714 },
715 },
716
717 # Unit tests for the 'sync_notifier' target. This cannot be a static
718 # library because the unit test files have to be compiled directly
719 # into the executable, so we push the target files to the
720 # depending executable target via direct_dependent_settings.
721 {
722 'target_name': 'sync_notifier_tests',
723 'type': 'none',
724 # We only want unit test executables to include this target.
725 'suppress_wildcard': 1,
726 'dependencies': [
727 '../base/base.gyp:base',
728 '../jingle/jingle.gyp:notifier_test_util',
729 '../net/net.gyp:net_test_support',
730 '../testing/gmock.gyp:gmock',
731 '../testing/gtest.gyp:gtest',
732 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
733 'sync_core',
734 'sync_notifier',
735 'test_support_sync_notifier',
736 ],
737 # Propagate all dependencies since the actual compilation
738 # happens in the dependents.
739 'export_dependent_settings': [
740 '../base/base.gyp:base',
741 '../jingle/jingle.gyp:notifier_test_util',
742 '../net/net.gyp:net_test_support',
743 '../testing/gmock.gyp:gmock',
744 '../testing/gtest.gyp:gtest',
745 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
746 'sync_core',
747 'sync_notifier',
748 'test_support_sync_notifier',
749 ],
750 'direct_dependent_settings': {
751 'include_dirs': [
752 '..',
753 ],
754 'sources': [
755 'notifier/invalidator_factory_unittest.cc',
756 ],
757 'conditions': [
758 ['OS == "ios"', {
759 'sources!': [
760 # TODO(ios): Re-enable this test on iOS once there is an iOS
761 # implementation of invalidator_factory.
762 'notifier/invalidator_factory_unittest.cc',
763 'notifier/sync_notifier_factory_unittest.cc',
764 ],
765 }],
766 ['OS != "android" and OS != "ios"', {
767 'sources': [
768 'notifier/ack_tracker_unittest.cc',
769 'notifier/fake_invalidator_unittest.cc',
770 'notifier/invalidation_notifier_unittest.cc',
771 'notifier/invalidator_registrar_unittest.cc',
772 'notifier/non_blocking_invalidator_unittest.cc',
773 'notifier/p2p_invalidator_unittest.cc',
774 'notifier/push_client_channel_unittest.cc',
775 'notifier/registration_manager_unittest.cc',
776 'notifier/sync_invalidation_listener_unittest.cc',
777 'notifier/sync_system_resources_unittest.cc',
778 ],
779 }],
780 ],
781 },
782 'conditions': [
783 ['OS != "ios"', {
784 'dependencies': [
785 '../third_party/libjingle/libjingle.gyp:libjingle',
786 ], 31 ],
787 'export_dependent_settings': [ 32 'export_dependent_settings': [
788 '../third_party/libjingle/libjingle.gyp:libjingle', 33 'sync_api',
789 ], 34 'sync_core',
790 }], 35 'sync_internal_api',
791 ],
792 },
793
794 # Unit tests for the 'sync_internal_api' target. This cannot be a static
795 # library because the unit test files have to be compiled directly
796 # into the executable, so we push the target files to the
797 # depending executable target via direct_dependent_settings.
798 {
799 'target_name': 'sync_internal_api_tests',
800 'type': 'none',
801 # We only want unit test executables to include this target.
802 'suppress_wildcard': 1,
803 'dependencies': [
804 '../base/base.gyp:base',
805 '../net/net.gyp:net',
806 '../net/net.gyp:net_test_support',
807 '../testing/gmock.gyp:gmock',
808 '../testing/gtest.gyp:gtest',
809 'protocol/sync_proto.gyp:sync_proto',
810 'sync_core',
811 'sync_internal_api',
812 'sync_notifier',
813 'test_support_sync_internal_api',
814 ],
815 # Propagate all dependencies since the actual compilation
816 # happens in the dependents.
817 'export_dependent_settings': [
818 '../base/base.gyp:base',
819 '../net/net.gyp:net',
820 '../net/net.gyp:net_test_support',
821 '../testing/gmock.gyp:gmock',
822 '../testing/gtest.gyp:gtest',
823 'protocol/sync_proto.gyp:sync_proto',
824 'sync_core',
825 'sync_internal_api',
826 'sync_notifier',
827 'test_support_sync_internal_api',
828 ],
829 'direct_dependent_settings': {
830 'include_dirs': [
831 '..',
832 ],
833 'sources': [
834 'internal_api/debug_info_event_listener_unittest.cc',
835 'internal_api/http_bridge_unittest.cc',
836 'internal_api/js_mutation_event_observer_unittest.cc',
837 'internal_api/js_sync_encryption_handler_observer_unittest.cc',
838 'internal_api/js_sync_manager_observer_unittest.cc',
839 'internal_api/public/change_record_unittest.cc',
840 'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
841 'internal_api/public/sessions/sync_source_info_unittest.cc',
842 'internal_api/syncapi_server_connection_manager_unittest.cc',
843 'internal_api/sync_encryption_handler_impl_unittest.cc',
844 'internal_api/sync_manager_impl_unittest.cc',
845 ],
846 'conditions': [
847 ['OS == "ios"', {
848 'sources!': [
849 'internal_api/http_bridge_unittest.cc',
850 ],
851 }],
852 ],
853 },
854 },
855
856 # Unit tests for the 'sync_api' target. This cannot be a static
857 # library because the unit test files have to be compiled directly
858 # into the executable, so we push the target files to the
859 # depending executable target via direct_dependent_settings.
860 {
861 'target_name': 'sync_api_tests',
862 'type': 'none',
863 # We only want unit test executables to include this target.
864 'suppress_wildcard': 1,
865 'dependencies': [
866 '../base/base.gyp:base',
867 '../testing/gtest.gyp:gtest',
868 'protocol/sync_proto.gyp:sync_proto',
869 'sync_core',
870 'sync_internal_api',
871 'test_support_sync_internal_api',
872 ],
873 # Propagate all dependencies since the actual compilation
874 # happens in the dependents.
875 'export_dependent_settings': [
876 '../base/base.gyp:base',
877 '../testing/gtest.gyp:gtest',
878 'protocol/sync_proto.gyp:sync_proto',
879 'sync_core',
880 'sync_internal_api',
881 'test_support_sync_internal_api',
882 ],
883 'direct_dependent_settings': {
884 'include_dirs': [
885 '..',
886 ],
887 'sources': [
888 'api/sync_change_unittest.cc',
889 'api/sync_error_unittest.cc',
890 'api/sync_merge_result_unittest.cc',
891 ],
892 },
893 },
894
895 # The unit test executable for sync tests.
896 {
897 'target_name': 'sync_unit_tests',
898 'type': '<(gtest_target_type)',
899 # Typed-parametrized tests generate exit-time destructors.
900 'variables': { 'enable_wexit_time_destructors': 0, },
901 'dependencies': [
902 '../base/base.gyp:run_all_unittests',
903 'sync',
904 'sync_api_tests',
905 'sync_core_tests',
906 'sync_internal_api_tests',
907 'sync_notifier_tests',
908 ],
909 'conditions': [
910 # TODO(akalin): This is needed because histogram.cc uses
911 # leak_annotations.h, which pulls this in. Make 'base'
912 # propagate this dependency.
913 ['OS=="linux" and linux_use_tcmalloc==1', {
914 'dependencies': [
915 '../base/allocator/allocator.gyp:allocator',
916 ],
917 }],
918 ['OS == "android" and gtest_target_type == "shared_library"', {
919 'dependencies': [
920 '../testing/android/native_test.gyp:native_test_native_code',
921 ],
922 }],
923 ],
924 },
925 ],
926 'conditions': [
927 ['OS != "ios"', {
928 'targets': [
929 {
930 'target_name': 'sync_tools_helper',
931 'type': 'static_library',
932 'include_dirs': [
933 '..',
934 ],
935 'dependencies': [
936 '../base/base.gyp:base',
937 'sync_notifier', 36 'sync_notifier',
938 ], 37 'sync_proto',
939 'export_dependent_settings': [
940 '../base/base.gyp:base',
941 'sync_notifier',
942 ],
943 'sources': [
944 'tools/null_invalidation_state_tracker.cc',
945 'tools/null_invalidation_state_tracker.h',
946 ],
947 },
948 # A tool to listen to sync notifications and print them out.
949 {
950 'target_name': 'sync_listen_notifications',
951 'type': 'executable',
952 'dependencies': [
953 '../base/base.gyp:base',
954 '../jingle/jingle.gyp:notifier',
955 '../net/net.gyp:net',
956 '../net/net.gyp:net_test_support',
957 'sync',
958 'sync_tools_helper',
959 ],
960 'sources': [
961 'tools/sync_listen_notifications.cc',
962 ], 38 ],
963 }, 39 },
964 40
965 # A standalone command-line sync client. 41 # The sync external API library.
966 { 42 {
967 'target_name': 'sync_client', 43 'target_name': 'sync_api',
968 'type': 'executable', 44 'type': 'static_library',
969 'defines': [ 45 'variables': { 'enable_wexit_time_destructors': 1, },
970 'SYNC_TEST', 46 'includes': [
47 'sync_api.gypi',
971 ], 48 ],
972 'dependencies': [ 49 'dependencies': [
973 '../base/base.gyp:base', 50 'sync_internal_api',
974 '../jingle/jingle.gyp:notifier', 51 'sync_proto',
975 '../net/net.gyp:net',
976 '../net/net.gyp:net_test_support',
977 'sync',
978 'sync_tools_helper',
979 ], 52 ],
980 'sources': [ 53 },
981 'tools/sync_client.cc', 54
55 # The core sync library.
56 {
57 'target_name': 'sync_core',
58 'type': 'static_library',
59 'variables': { 'enable_wexit_time_destructors': 1, },
60 'includes': [
61 'sync_core.gypi',
62 ],
63 'dependencies': [
64 'sync_proto',
65 ],
66 'export_dependent_settings': [
67 'sync_proto',
68 ],
69 },
70
71 # The sync internal API library.
72 {
73 'target_name': 'sync_internal_api',
74 'type': 'static_library',
75 'variables': { 'enable_wexit_time_destructors': 1, },
76 'includes': [
77 'sync_internal_api.gypi',
78 ],
79 'dependencies': [
80 'sync_core',
81 'sync_notifier',
82 'sync_proto',
83 ],
84 'export_dependent_settings': [
85 'sync_core',
86 'sync_proto',
87 ],
88 },
89
90 # The sync notifications library.
91 {
92 'target_name': 'sync_notifier',
93 'type': 'static_library',
94 'variables': { 'enable_wexit_time_destructors': 1, },
95 'includes': [
96 'sync_notifier.gypi',
97 ],
98 'dependencies': [
99 'sync_core',
100 ],
101 },
102
103 # The sync protocol buffer library.
104 {
105 'target_name': 'sync_proto',
106 'type': 'static_library',
107 'variables': { 'enable_wexit_time_destructors': 1, },
108 'includes': [
109 'sync_proto.gypi',
982 ], 110 ],
983 }, 111 },
984 ], 112 ],
985 }], 113 },
114 { # component != static_library
115 'targets': [
116 # The public sync shared library target.
117 {
118 'target_name': 'sync',
119 'type': 'shared_library',
120 'variables': { 'enable_wexit_time_destructors': 1, },
121 'includes': [
122 'sync_api.gypi',
123 'sync_core.gypi',
124 'sync_internal_api.gypi',
125 'sync_notifier.gypi',
126 'sync_proto.gypi',
127 ],
128 'msvs_settings': {
129 'VCLinkerTool': {
130 'conditions': [
131 ['incremental_chrome_dll==1', {
132 'UseLibraryDependencyInputs': "true",
133 }],
134 ],
135 },
136 },
137 },
986 138
987 # Special target to wrap a gtest_target_type==shared_library
988 # sync_unit_tests into an android apk for execution.
989 ['OS == "android" and gtest_target_type == "shared_library"', {
990 'targets': [
991 { 139 {
992 'target_name': 'sync_unit_tests_apk', 140 'target_name': 'sync_api',
993 'type': 'none', 141 'type': 'none',
994 'dependencies': [ 142 'dependencies': [ 'sync' ],
995 'sync_unit_tests', 143 'export_dependent_settings': [ 'sync' ],
996 ], 144 },
997 'variables': { 145
998 'test_suite_name': 'sync_unit_tests', 146 {
999 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit _tests<(SHARED_LIB_SUFFIX)', 147 'target_name': 'sync_core',
1000 }, 148 'type': 'none',
1001 'includes': [ '../build/apk_test.gypi' ], 149 'dependencies': [ 'sync' ],
150 'export_dependent_settings': [ 'sync' ],
151 },
152
153 {
154 'target_name': 'sync_internal_api',
155 'type': 'none',
156 'dependencies': [ 'sync' ],
157 'export_dependent_settings': [ 'sync' ],
158 },
159
160 {
161 'target_name': 'sync_notifier',
162 'type': 'none',
163 'dependencies': [ 'sync' ],
164 'export_dependent_settings': [ 'sync' ],
165 },
166
167 {
168 'target_name': 'sync_proto',
169 'type': 'none',
170 'dependencies': [ 'sync' ],
171 'export_dependent_settings': [ 'sync' ],
1002 }, 172 },
1003 ], 173 ],
1004 }], 174 }],
1005 ], 175 ],
1006 } 176 }
OLDNEW
« net/net.gyp ('K') | « sync/protocol/sync_proto.gyp ('k') | sync/sync_api.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698