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

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: Address CR Feedback 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 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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/enum_set.h',
316 'internal_api/public/base/invalidation.cc',
317 'internal_api/public/base/invalidation.h',
318 'internal_api/public/base/model_type.h',
319 'internal_api/public/base/model_type_invalidation_map.cc',
320 'internal_api/public/base/model_type_invalidation_map.h',
321 'internal_api/public/base/node_ordinal.cc',
322 'internal_api/public/base/node_ordinal.h',
323 'internal_api/public/base/ordinal.h',
324 'internal_api/public/base/progress_marker_map.cc',
325 'internal_api/public/base/progress_marker_map.h',
326 'internal_api/public/base/unique_position.cc',
327 'internal_api/public/base/unique_position.h',
328 'internal_api/public/base_node.h',
329 'internal_api/public/base_transaction.h',
330 'internal_api/public/change_record.h',
331 'internal_api/public/configure_reason.h',
332 'internal_api/public/data_type_association_stats.cc',
333 'internal_api/public/data_type_association_stats.h',
334 'internal_api/public/data_type_debug_info_listener.h',
335 'internal_api/public/engine/model_safe_worker.cc',
336 'internal_api/public/engine/model_safe_worker.h',
337 'internal_api/public/engine/passive_model_worker.cc',
338 'internal_api/public/engine/passive_model_worker.h',
339 'internal_api/public/engine/polling_constants.cc',
340 'internal_api/public/engine/polling_constants.h',
341 'internal_api/public/engine/sync_status.cc',
342 'internal_api/public/engine/sync_status.h',
343 'internal_api/public/http_bridge.h',
344 'internal_api/public/http_post_provider_factory.h',
345 'internal_api/public/http_post_provider_interface.h',
346 'internal_api/public/internal_components_factory_impl.h',
347 'internal_api/public/internal_components_factory.h',
348 'internal_api/public/read_node.h',
349 'internal_api/public/read_transaction.h',
350 'internal_api/public/sessions/model_neutral_state.cc',
351 'internal_api/public/sessions/model_neutral_state.h',
352 'internal_api/public/sessions/sync_session_snapshot.cc',
353 'internal_api/public/sessions/sync_session_snapshot.h',
354 'internal_api/public/sessions/sync_source_info.cc',
355 'internal_api/public/sessions/sync_source_info.h',
356 'internal_api/public/sync_encryption_handler.cc',
357 'internal_api/public/sync_encryption_handler.h',
358 'internal_api/public/sync_manager_factory.h',
359 'internal_api/public/sync_manager.cc',
360 'internal_api/public/sync_manager.h',
361 'internal_api/public/user_share.h',
362 'internal_api/public/util/experiments.h',
363 'internal_api/public/util/immutable.h',
364 'internal_api/public/util/report_unrecoverable_error_function.h',
365 'internal_api/public/util/sync_string_conversions.cc',
366 'internal_api/public/util/sync_string_conversions.h',
367 'internal_api/public/util/syncer_error.cc',
368 'internal_api/public/util/syncer_error.h',
369 'internal_api/public/util/unrecoverable_error_handler.h',
370 'internal_api/public/util/unrecoverable_error_info.cc',
371 'internal_api/public/util/unrecoverable_error_info.h',
372 'internal_api/public/util/weak_handle.cc',
373 'internal_api/public/util/weak_handle.h',
374 'internal_api/public/write_node.h',
375 'internal_api/public/write_transaction.h',
376 'internal_api/read_node.cc',
377 'internal_api/read_transaction.cc',
378 'internal_api/sync_encryption_handler_impl.cc',
379 'internal_api/sync_encryption_handler_impl.h',
380 'internal_api/sync_manager_factory.cc',
381 'internal_api/sync_manager_impl.cc',
382 'internal_api/sync_manager_impl.h',
383 'internal_api/syncapi_internal.cc',
384 'internal_api/syncapi_internal.h',
385 'internal_api/syncapi_server_connection_manager.cc',
386 'internal_api/syncapi_server_connection_manager.h',
387 'internal_api/user_share.cc',
388 'internal_api/write_node.cc',
389 'internal_api/write_transaction.cc',
390 ],
391 },
392
393 # The sync external API library.
394 {
395 'target_name': 'sync_api',
396 'type': 'static_library',
397 'variables': { 'enable_wexit_time_destructors': 1, },
398 'include_dirs': [
399 '..',
400 ],
401 'dependencies': [
402 '../base/base.gyp:base',
403 'protocol/sync_proto.gyp:sync_proto',
404 'sync_internal_api',
405 ],
406 # We avoid including header files from sync_proto in our public
407 # header files so we don't need to export its settings.
408 'sources': [
409 'api/string_ordinal.h',
410 'api/syncable_service.cc',
411 'api/syncable_service.h',
412 'api/sync_data.h',
413 'api/sync_data.cc',
414 'api/sync_change.h',
415 'api/sync_change.cc',
416 'api/sync_change_processor.h',
417 'api/sync_change_processor.cc',
418 'api/sync_error.h',
419 'api/sync_error.cc',
420 'api/sync_error_factory.h',
421 'api/sync_error_factory.cc',
422 'api/sync_merge_result.h',
423 'api/sync_merge_result.cc',
424 'api/time.h',
425 ],
426 },
427
428 # The componentized sync library.
429 {
430 'target_name': 'sync_component',
431 # TODO(rsimha): Change the type of this target to '<(component)' after
432 # exporting dependencies on 'sync_proto'.
433 'type': 'none',
434 'dependencies': [
435 'sync_api',
436 'sync_core',
437 'sync_notifier',
438 'sync_internal_api',
439 ],
440 'export_dependent_settings': [
441 'sync_api',
442 'sync_core',
443 'sync_notifier',
444 'sync_internal_api',
445 ],
446 },
447
448 # The public sync target. This depends on 'sync_component' and
449 # 'sync_proto' separately since 'sync_proto' isn't exportable from
450 # 'sync_component' (for now).
451 {
452 'target_name': 'sync',
453 'type': 'none',
454 'dependencies': [
455 'sync_component',
456 'protocol/sync_proto.gyp:sync_proto',
457 ],
458 'export_dependent_settings': [
459 'sync_component',
460 'protocol/sync_proto.gyp:sync_proto',
461 ],
462 },
463
464 # Test support files for the 'sync_core' target.
465 {
466 'target_name': 'test_support_sync_core',
467 'type': 'static_library',
468 'variables': { 'enable_wexit_time_destructors': 1, },
469 'include_dirs': [
470 '..',
471 ],
472 'dependencies': [
473 '../base/base.gyp:base',
474 '../testing/gmock.gyp:gmock',
475 '../testing/gtest.gyp:gtest',
476 'protocol/sync_proto.gyp:sync_proto',
477 'sync_core',
478 ],
479 'export_dependent_settings': [
480 '../testing/gmock.gyp:gmock',
481 '../testing/gtest.gyp:gtest',
482 'protocol/sync_proto.gyp:sync_proto',
483 'sync_core',
484 ],
485 'sources': [
486 'js/js_test_util.cc',
487 'js/js_test_util.h',
488 'sessions/test_util.cc',
489 'sessions/test_util.h',
490 'syncable/syncable_mock.cc',
491 'syncable/syncable_mock.h',
492 'test/callback_counter.h',
493 'test/engine/fake_model_worker.cc',
494 'test/engine/fake_model_worker.h',
495 'test/engine/fake_sync_scheduler.cc',
496 'test/engine/fake_sync_scheduler.h',
497 'test/engine/mock_connection_manager.cc',
498 'test/engine/mock_connection_manager.h',
499 'test/engine/syncer_command_test.cc',
500 'test/engine/syncer_command_test.h',
501 'test/engine/test_directory_setter_upper.cc',
502 'test/engine/test_directory_setter_upper.h',
503 'test/engine/test_id_factory.h',
504 'test/engine/test_syncable_utils.cc',
505 'test/engine/test_syncable_utils.h',
506 'test/fake_encryptor.cc',
507 'test/fake_encryptor.h',
508 'test/fake_sync_encryption_handler.h',
509 'test/fake_sync_encryption_handler.cc',
510 'test/fake_extensions_activity_monitor.cc',
511 'test/fake_extensions_activity_monitor.h',
512 'test/test_transaction_observer.cc',
513 'test/test_transaction_observer.h',
514 'test/null_directory_change_delegate.cc',
515 'test/null_directory_change_delegate.h',
516 'test/null_transaction_observer.cc',
517 'test/null_transaction_observer.h',
518 'test/sessions/test_scoped_session_event_listener.h',
519 'test/test_directory_backing_store.cc',
520 'test/test_directory_backing_store.h',
521 'util/test_unrecoverable_error_handler.cc',
522 'util/test_unrecoverable_error_handler.h',
523 ],
524 },
525
526 # Test support files for the python sync test server.
527 {
528 'target_name': 'test_support_sync_testserver',
529 'type': 'static_library',
530 'variables': { 'enable_wexit_time_destructors': 1, },
531 'include_dirs': [
532 '..',
533 ],
534 'dependencies': [
535 '../base/base.gyp:base',
536 '../net/net.gyp:net_test_support',
537
538 # The sync test server uses Python modules generated by the sync protos.
539 '../third_party/protobuf/protobuf.gyp:py_proto',
540 'protocol/sync_proto.gyp:sync_proto',
541 ],
542 'export_dependent_settings': [
543 '../base/base.gyp:base',
544 '../net/net.gyp:net_test_support',
545 ],
546 'sources': [
547 'test/local_sync_test_server.cc',
548 'test/local_sync_test_server.h',
549 ],
550 },
551
552 # Test support files for the 'sync_notifier' target.
553 {
554 'target_name': 'test_support_sync_notifier',
555 'type': 'static_library',
556 'include_dirs': [
557 '..',
558 ],
559 'dependencies': [
560 '../testing/gmock.gyp:gmock',
561 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n_proto_cpp',
562 'sync_internal_api',
563 'sync_notifier',
564 ],
565 'export_dependent_settings': [
566 '../testing/gmock.gyp:gmock',
567 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n_proto_cpp',
568 'sync_internal_api',
569 'sync_notifier',
570 ],
571 'sources': [
572 'notifier/fake_invalidation_state_tracker.cc',
573 'notifier/fake_invalidation_state_tracker.h',
574 'notifier/fake_invalidator.cc',
575 'notifier/fake_invalidator.h',
576 'notifier/fake_invalidation_handler.cc',
577 'notifier/fake_invalidation_handler.h',
578 'notifier/invalidator_test_template.cc',
579 'notifier/invalidator_test_template.h',
580 'notifier/object_id_invalidation_map_test_util.cc',
581 'notifier/object_id_invalidation_map_test_util.h',
582 ],
583 },
584
585 # Test support files for the 'sync_internal_api' target.
586 {
587 'target_name': 'test_support_sync_internal_api',
588 'type': 'static_library',
589 'variables': { 'enable_wexit_time_destructors': 1, },
590 'include_dirs': [
591 '..',
592 ],
593 'dependencies': [
594 '../base/base.gyp:base',
595 '../testing/gtest.gyp:gtest',
596 'protocol/sync_proto.gyp:sync_proto',
597 'sync_core',
598 'sync_internal_api',
599 'sync_notifier',
600 'test_support_sync_core',
601 ],
602 'export_dependent_settings': [
603 '../testing/gtest.gyp:gtest',
604 'protocol/sync_proto.gyp:sync_proto',
605 'sync_core',
606 'sync_internal_api',
607 'sync_notifier',
608 'test_support_sync_core',
609 ],
610 'sources': [
611 'internal_api/public/base/invalidation_test_util.cc',
612 'internal_api/public/base/invalidation_test_util.h',
613 'internal_api/public/base/model_type_invalidation_map_test_util.cc',
614 'internal_api/public/base/model_type_invalidation_map_test_util.h',
615 'internal_api/public/base/model_type_test_util.cc',
616 'internal_api/public/base/model_type_test_util.h',
617 'internal_api/public/test/fake_sync_manager.h',
618 'internal_api/public/test/test_entry_factory.h',
619 'internal_api/public/test/test_internal_components_factory.h',
620 'internal_api/public/test/test_user_share.h',
621 'internal_api/test/fake_sync_manager.cc',
622 'internal_api/test/test_entry_factory.cc',
623 'internal_api/test/test_internal_components_factory.cc',
624 'internal_api/test/test_user_share.cc',
625 ],
626 },
627
628 # Test support files for the 'sync_api' target.
629 {
630 'target_name': 'test_support_sync_api',
631 'type': 'static_library',
632 'include_dirs': [
633 '..',
634 ],
635 'dependencies': [
636 '../testing/gmock.gyp:gmock',
637 'sync_api',
638 ],
639 'export_dependent_settings': [
640 '../testing/gmock.gyp:gmock',
641 'sync_api',
642 ],
643 'sources': [
644 'api/fake_syncable_service.cc',
645 'api/fake_syncable_service.h',
646 'api/sync_error_factory_mock.cc',
647 'api/sync_error_factory_mock.h',
648 ],
649 },
650
651 # Unit tests for the 'sync_core' target. This cannot be a static
652 # library because the unit test files have to be compiled directly
653 # into the executable, so we push the target files to the
654 # depending executable target via direct_dependent_settings.
655 {
656 'target_name': 'sync_core_tests',
657 'type': 'none',
658 # We only want unit test executables to include this target.
659 'suppress_wildcard': 1,
660 'dependencies': [
661 '../base/base.gyp:base',
662 '../testing/gmock.gyp:gmock',
663 '../testing/gtest.gyp:gtest',
664 'protocol/sync_proto.gyp:sync_proto',
665 'sync_core',
666 'test_support_sync_core',
667 ],
668 # Propagate all dependencies since the actual compilation
669 # happens in the dependents.
670 'export_dependent_settings': [
671 '../base/base.gyp:base',
672 '../testing/gmock.gyp:gmock',
673 '../testing/gtest.gyp:gtest',
674 'protocol/sync_proto.gyp:sync_proto',
675 'sync_core',
676 'test_support_sync_core',
677 ],
678 'direct_dependent_settings': {
679 'include_dirs': [
680 '..',
681 ],
682 'sources': [
683 'internal_api/public/base/enum_set_unittest.cc',
684 'internal_api/public/base/model_type_invalidation_map_unittest.cc',
685 'internal_api/public/base/node_ordinal_unittest.cc',
686 'internal_api/public/base/ordinal_unittest.cc',
687 'internal_api/public/base/unique_position_unittest.cc',
688 'internal_api/public/engine/model_safe_worker_unittest.cc',
689 'internal_api/public/util/immutable_unittest.cc',
690 'internal_api/public/util/weak_handle_unittest.cc',
691 'engine/apply_control_data_updates_unittest.cc',
692 'engine/apply_updates_and_resolve_conflicts_command_unittest.cc',
693 'engine/backoff_delay_provider_unittest.cc',
694 'engine/build_commit_command_unittest.cc',
695 'engine/download_updates_command_unittest.cc',
696 'engine/model_changing_syncer_command_unittest.cc',
697 'engine/process_commit_response_command_unittest.cc',
698 'engine/process_updates_command_unittest.cc',
699 'engine/store_timestamps_command_unittest.cc',
700 'engine/sync_session_job_unittest.cc',
701 'engine/sync_scheduler_unittest.cc',
702 'engine/sync_scheduler_whitebox_unittest.cc',
703 'engine/syncer_proto_util_unittest.cc',
704 'engine/syncer_unittest.cc',
705 'engine/throttled_data_type_tracker_unittest.cc',
706 'engine/traffic_recorder_unittest.cc',
707 'js/js_arg_list_unittest.cc',
708 'js/js_event_details_unittest.cc',
709 'js/sync_js_controller_unittest.cc',
710 'protocol/proto_enum_conversions_unittest.cc',
711 'protocol/proto_value_conversions_unittest.cc',
712 'sessions/ordered_commit_set_unittest.cc',
713 'sessions/status_controller_unittest.cc',
714 'sessions/sync_session_unittest.cc',
715 'syncable/directory_backing_store_unittest.cc',
716 'syncable/model_type_unittest.cc',
717 'syncable/nigori_util_unittest.cc',
718 'syncable/syncable_enum_conversions_unittest.cc',
719 'syncable/syncable_id_unittest.cc',
720 'syncable/syncable_unittest.cc',
721 'syncable/syncable_util_unittest.cc',
722 'util/cryptographer_unittest.cc',
723 'util/data_encryption_win_unittest.cc',
724 'util/data_type_histogram_unittest.cc',
725 'util/get_session_name_unittest.cc',
726 'util/nigori_unittest.cc',
727 'util/protobuf_unittest.cc',
728 ],
729 'conditions': [
730 ['OS == "ios" and coverage != 0', {
731 'sources!': [
732 # These sources can't be built with coverage due to a toolchain
733 # bug: http://openradar.appspot.com/radar?id=1499403
734 'engine/syncer_unittest.cc',
735
736 # These tests crash when run with coverage turned on due to an
737 # issue with llvm_gcda_increment_indirect_counter:
738 # http://crbug.com/156058
739 'syncable/directory_backing_store_unittest.cc',
740 ],
741 }],
742 ],
743 },
744 },
745
746 # Unit tests for the 'sync_notifier' target. This cannot be a static
747 # library because the unit test files have to be compiled directly
748 # into the executable, so we push the target files to the
749 # depending executable target via direct_dependent_settings.
750 {
751 'target_name': 'sync_notifier_tests',
752 'type': 'none',
753 # We only want unit test executables to include this target.
754 'suppress_wildcard': 1,
755 'dependencies': [
756 '../base/base.gyp:base',
757 '../jingle/jingle.gyp:notifier_test_util',
758 '../net/net.gyp:net_test_support',
759 '../testing/gmock.gyp:gmock',
760 '../testing/gtest.gyp:gtest',
761 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
762 'sync_core',
763 'sync_notifier',
764 'test_support_sync_notifier',
765 ],
766 # Propagate all dependencies since the actual compilation
767 # happens in the dependents.
768 'export_dependent_settings': [
769 '../base/base.gyp:base',
770 '../jingle/jingle.gyp:notifier_test_util',
771 '../net/net.gyp:net_test_support',
772 '../testing/gmock.gyp:gmock',
773 '../testing/gtest.gyp:gtest',
774 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidatio n',
775 'sync_core',
776 'sync_notifier',
777 'test_support_sync_notifier',
778 ],
779 'direct_dependent_settings': {
780 'include_dirs': [
781 '..',
782 ],
783 'sources': [
784 'notifier/invalidator_factory_unittest.cc',
785 ],
786 'conditions': [
787 ['OS == "ios"', {
788 'sources!': [
789 # TODO(ios): Re-enable this test on iOS once there is an iOS
790 # implementation of invalidator_factory.
791 'notifier/invalidator_factory_unittest.cc',
792 'notifier/sync_notifier_factory_unittest.cc',
793 ],
794 }],
795 ['OS != "android" and OS != "ios"', {
796 'sources': [
797 'notifier/ack_tracker_unittest.cc',
798 'notifier/fake_invalidator_unittest.cc',
799 'notifier/invalidation_notifier_unittest.cc',
800 'notifier/invalidator_registrar_unittest.cc',
801 'notifier/non_blocking_invalidator_unittest.cc',
802 'notifier/p2p_invalidator_unittest.cc',
803 'notifier/push_client_channel_unittest.cc',
804 'notifier/registration_manager_unittest.cc',
805 'notifier/sync_invalidation_listener_unittest.cc',
806 'notifier/sync_system_resources_unittest.cc',
807 ],
808 }],
809 ],
810 },
811 'conditions': [
812 ['OS != "ios"', {
813 'dependencies': [
814 '../third_party/libjingle/libjingle.gyp:libjingle',
815 ], 31 ],
816 'export_dependent_settings': [ 32 'export_dependent_settings': [
817 '../third_party/libjingle/libjingle.gyp:libjingle', 33 'sync_api',
818 ], 34 # TODO(sync): 'sync' shouldn't have to export 'sync_core'.
819 }], 35 # See http://crbug.com/171579.
820 ], 36 'sync_core',
821 }, 37 'sync_internal_api',
822
823 # Unit tests for the 'sync_internal_api' target. This cannot be a static
824 # library because the unit test files have to be compiled directly
825 # into the executable, so we push the target files to the
826 # depending executable target via direct_dependent_settings.
827 {
828 'target_name': 'sync_internal_api_tests',
829 'type': 'none',
830 # We only want unit test executables to include this target.
831 'suppress_wildcard': 1,
832 'dependencies': [
833 '../base/base.gyp:base',
834 '../net/net.gyp:net',
835 '../net/net.gyp:net_test_support',
836 '../testing/gmock.gyp:gmock',
837 '../testing/gtest.gyp:gtest',
838 'protocol/sync_proto.gyp:sync_proto',
839 'sync_core',
840 'sync_internal_api',
841 'sync_notifier',
842 'test_support_sync_internal_api',
843 ],
844 # Propagate all dependencies since the actual compilation
845 # happens in the dependents.
846 'export_dependent_settings': [
847 '../base/base.gyp:base',
848 '../net/net.gyp:net',
849 '../net/net.gyp:net_test_support',
850 '../testing/gmock.gyp:gmock',
851 '../testing/gtest.gyp:gtest',
852 'protocol/sync_proto.gyp:sync_proto',
853 'sync_core',
854 'sync_internal_api',
855 'sync_notifier',
856 'test_support_sync_internal_api',
857 ],
858 'direct_dependent_settings': {
859 'include_dirs': [
860 '..',
861 ],
862 'sources': [
863 'internal_api/debug_info_event_listener_unittest.cc',
864 'internal_api/http_bridge_unittest.cc',
865 'internal_api/js_mutation_event_observer_unittest.cc',
866 'internal_api/js_sync_encryption_handler_observer_unittest.cc',
867 'internal_api/js_sync_manager_observer_unittest.cc',
868 'internal_api/public/change_record_unittest.cc',
869 'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
870 'internal_api/public/sessions/sync_source_info_unittest.cc',
871 'internal_api/syncapi_server_connection_manager_unittest.cc',
872 'internal_api/sync_encryption_handler_impl_unittest.cc',
873 'internal_api/sync_manager_impl_unittest.cc',
874 ],
875 'conditions': [
876 ['OS == "ios"', {
877 'sources!': [
878 'internal_api/http_bridge_unittest.cc',
879 ],
880 }],
881 ],
882 },
883 },
884
885 # Unit tests for the 'sync_api' target. This cannot be a static
886 # library because the unit test files have to be compiled directly
887 # into the executable, so we push the target files to the
888 # depending executable target via direct_dependent_settings.
889 {
890 'target_name': 'sync_api_tests',
891 'type': 'none',
892 # We only want unit test executables to include this target.
893 'suppress_wildcard': 1,
894 'dependencies': [
895 '../base/base.gyp:base',
896 '../testing/gtest.gyp:gtest',
897 'protocol/sync_proto.gyp:sync_proto',
898 'sync_core',
899 'sync_internal_api',
900 'test_support_sync_internal_api',
901 ],
902 # Propagate all dependencies since the actual compilation
903 # happens in the dependents.
904 'export_dependent_settings': [
905 '../base/base.gyp:base',
906 '../testing/gtest.gyp:gtest',
907 'protocol/sync_proto.gyp:sync_proto',
908 'sync_core',
909 'sync_internal_api',
910 'test_support_sync_internal_api',
911 ],
912 'direct_dependent_settings': {
913 'include_dirs': [
914 '..',
915 ],
916 'sources': [
917 'api/sync_change_unittest.cc',
918 'api/sync_error_unittest.cc',
919 'api/sync_merge_result_unittest.cc',
920 ],
921 },
922 },
923
924 # The unit test executable for sync tests.
925 {
926 'target_name': 'sync_unit_tests',
927 'type': '<(gtest_target_type)',
928 # Typed-parametrized tests generate exit-time destructors.
929 'variables': { 'enable_wexit_time_destructors': 0, },
930 'dependencies': [
931 '../base/base.gyp:run_all_unittests',
932 'sync',
933 'sync_api_tests',
934 'sync_core_tests',
935 'sync_internal_api_tests',
936 'sync_notifier_tests',
937 ],
938 'conditions': [
939 # TODO(akalin): This is needed because histogram.cc uses
940 # leak_annotations.h, which pulls this in. Make 'base'
941 # propagate this dependency.
942 ['OS=="linux" and linux_use_tcmalloc==1', {
943 'dependencies': [
944 '../base/allocator/allocator.gyp:allocator',
945 ],
946 }],
947 ['OS == "android" and gtest_target_type == "shared_library"', {
948 'dependencies': [
949 '../testing/android/native_test.gyp:native_test_native_code',
950 ],
951 }],
952 ],
953 },
954 ],
955 'conditions': [
956 ['OS != "ios"', {
957 'targets': [
958 {
959 'target_name': 'sync_tools_helper',
960 'type': 'static_library',
961 'include_dirs': [
962 '..',
963 ],
964 'dependencies': [
965 '../base/base.gyp:base',
966 'sync_notifier', 38 'sync_notifier',
967 ], 39 'sync_proto',
Ryan Sleevi 2013/01/23 04:06:21 Curious: Why the export_dependent_settings here?
Raghu Simha 2013/01/23 08:04:06 You are right. it turns out that the only dependen
968 'export_dependent_settings': [
969 '../base/base.gyp:base',
970 'sync_notifier',
971 ],
972 'sources': [
973 'tools/null_invalidation_state_tracker.cc',
974 'tools/null_invalidation_state_tracker.h',
975 ], 40 ],
976 }, 41 },
977 42
978 # A tool that can be used to launch a python sync server instance. 43 # The sync external API library.
979 { 44 {
980 'target_name': 'run_sync_testserver', 45 'target_name': 'sync_api',
981 'type': 'executable', 46 'type': 'static_library',
47 'variables': { 'enable_wexit_time_destructors': 1, },
48 'includes': [
49 'sync_api.gypi',
50 ],
982 'dependencies': [ 51 'dependencies': [
983 '../base/base.gyp:base', 52 'sync_internal_api',
984 '../base/base.gyp:test_support_base', 53 'sync_proto',
985 '../net/net.gyp:net_test_support',
986 '../testing/gtest.gyp:gtest',
987 'test_support_sync_testserver',
988 ],
989 'sources': [
990 'tools/testserver/run_sync_testserver.cc',
991 ], 54 ],
992 }, 55 },
993 56
994 # A tool to listen to sync notifications and print them out. 57 # The core sync library.
995 { 58 {
996 'target_name': 'sync_listen_notifications', 59 'target_name': 'sync_core',
997 'type': 'executable', 60 'type': 'static_library',
61 'variables': { 'enable_wexit_time_destructors': 1, },
62 'includes': [
63 'sync_core.gypi',
64 ],
998 'dependencies': [ 65 'dependencies': [
999 '../base/base.gyp:base', 66 'sync_proto',
1000 '../jingle/jingle.gyp:notifier',
1001 '../net/net.gyp:net',
1002 '../net/net.gyp:net_test_support',
1003 'sync',
1004 'sync_tools_helper',
1005 ], 67 ],
1006 'sources': [ 68 'export_dependent_settings': [
1007 'tools/sync_listen_notifications.cc', 69 'sync_proto',
1008 ], 70 ],
1009 }, 71 },
1010 72
1011 # A standalone command-line sync client. 73 # The sync internal API library.
1012 { 74 {
1013 'target_name': 'sync_client', 75 'target_name': 'sync_internal_api',
1014 'type': 'executable', 76 'type': 'static_library',
1015 'defines': [ 77 'variables': { 'enable_wexit_time_destructors': 1, },
1016 'SYNC_TEST', 78 'includes': [
79 'sync_internal_api.gypi',
1017 ], 80 ],
1018 'dependencies': [ 81 'dependencies': [
1019 '../base/base.gyp:base', 82 'sync_core',
1020 '../jingle/jingle.gyp:notifier', 83 'sync_notifier',
1021 '../net/net.gyp:net', 84 'sync_proto',
1022 '../net/net.gyp:net_test_support',
1023 'sync',
1024 'sync_tools_helper',
1025 ], 85 ],
1026 'sources': [ 86 'export_dependent_settings': [
1027 'tools/sync_client.cc', 87 'sync_core',
88 'sync_proto',
89 ],
90 },
91
92 # The sync notifications library.
93 {
94 'target_name': 'sync_notifier',
95 'type': 'static_library',
96 'variables': { 'enable_wexit_time_destructors': 1, },
97 'includes': [
98 'sync_notifier.gypi',
99 ],
100 'dependencies': [
101 'sync_core',
102 ],
103 },
104
105 # The sync protocol buffer library.
106 {
107 'target_name': 'sync_proto',
108 'type': 'static_library',
109 'variables': { 'enable_wexit_time_destructors': 1, },
110 'includes': [
111 'sync_proto.gypi',
1028 ], 112 ],
1029 }, 113 },
1030 ], 114 ],
1031 }], 115 },
1032 ['OS == "android"', { 116 { # component != static_library
1033 'targets': [ 117 'targets': [
118 # The public sync shared library target.
1034 { 119 {
1035 'target_name': 'sync_java', 120 'target_name': 'sync',
121 'type': 'shared_library',
122 'variables': { 'enable_wexit_time_destructors': 1, },
123 'includes': [
124 'sync_api.gypi',
125 'sync_core.gypi',
126 'sync_internal_api.gypi',
127 'sync_notifier.gypi',
128 'sync_proto.gypi',
129 ],
130 },
131
132 {
133 'target_name': 'sync_api',
1036 'type': 'none', 134 'type': 'none',
1037 'variables': { 135 'dependencies': [ 'sync' ],
1038 'package_name': 'sync', 136 'export_dependent_settings': [ 'sync' ],
1039 'java_in_dir': '../sync/android/java',
1040 },
1041 'dependencies': [
1042 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalid ation_javalib',
1043 '../third_party/guava/guava.gyp:guava_javalib',
1044 '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
1045 ],
1046 'includes': [ '../build/java.gypi' ],
1047 }, 137 },
138
1048 { 139 {
1049 'target_name': 'sync_javatests', 140 'target_name': 'sync_core',
1050 'type': 'none', 141 'type': 'none',
1051 'variables': { 142 'dependencies': [ 'sync' ],
1052 'package_name': 'sync_javatests', 143 'export_dependent_settings': [ 'sync' ],
1053 'java_in_dir': '../sync/android/javatests', 144 },
1054 }, 145
1055 'dependencies': [ 146 {
1056 'sync_java', 147 'target_name': 'sync_internal_api',
1057 '../base/base.gyp:base_java_test_support', 148 'type': 'none',
1058 ], 149 'dependencies': [ 'sync' ],
1059 'includes': [ '../build/java.gypi' ], 150 'export_dependent_settings': [ 'sync' ],
151 },
152
153 {
154 'target_name': 'sync_notifier',
155 'type': 'none',
156 'dependencies': [ 'sync' ],
157 'export_dependent_settings': [ 'sync' ],
158 },
159
160 {
161 'target_name': 'sync_proto',
162 'type': 'none',
163 'dependencies': [ 'sync' ],
164 'export_dependent_settings': [ 'sync' ],
1060 }, 165 },
Ryan Sleevi 2013/01/23 04:06:21 Are these pseudo-targets still needed?
Raghu Simha 2013/01/23 08:04:06 Yes, they are used within sync_tests.gypi, so that
1061 ], 166 ],
1062 }], 167 }],
1063
1064 # Special target to wrap a gtest_target_type==shared_library
1065 # sync_unit_tests into an android apk for execution.
1066 ['OS == "android" and gtest_target_type == "shared_library"', {
1067 'targets': [
1068 {
1069 'target_name': 'sync_unit_tests_apk',
1070 'type': 'none',
1071 'dependencies': [
1072 'sync_unit_tests',
1073 ],
1074 'variables': {
1075 'test_suite_name': 'sync_unit_tests',
1076 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit _tests<(SHARED_LIB_SUFFIX)',
1077 },
1078 'includes': [ '../build/apk_test.gypi' ],
1079 },
1080 ],
1081 }],
1082 ], 168 ],
1083 } 169 }
OLDNEW
« sync/base/sync_export.h ('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