Updating trunk VERSION from 723.0 to 724.0
[chromium-blink-merge.git] / chrome / chrome.gyp
blobc3ddf9385865b45029db45ca8bd815dc3f255ce1
1 # Copyright (c) 2011 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.
5   'variables': {
6     'chromium_code': 1,
8     'variables': {
9       'version_py_path': 'tools/build/version.py',
10       'version_path': 'VERSION',
11     },
12     'version_py_path': '<(version_py_path)',
13     'version_path': '<(version_path)',
14     'version_full':
15         '<!(python <(version_py_path) -f <(version_path) -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
16     'version_mac_dylib':
17         '<!(python <(version_py_path) -f <(version_path) -t "@BUILD@.@PATCH_HI@.@PATCH_LO@" -e "PATCH_HI=int(PATCH)/256" -e "PATCH_LO=int(PATCH)%256")',
19     # Define the common dependencies that contain all the actual
20     # Chromium functionality.  This list gets pulled in below by
21     # the link of the actual chrome (or chromium) executable on
22     # Linux or Mac, and into chrome.dll on Windows.
23     'chromium_dependencies': [
24       'common',
25       'browser',
26       'profile_import',
27       'renderer',
28       'syncapi',
29       'utility',
30       'service',
31       '../content/content.gyp:content_gpu',
32       '../content/content.gyp:content_ppapi_plugin',
33       '../content/content.gyp:content_worker',
34       '../printing/printing.gyp:printing',
35       '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:inspector_resources',
36     ],
37     'nacl_win64_dependencies': [
38       'common_nacl_win64',
39       'common_constants_win64',
40       'installer_util_nacl_win64',
41     ],
42     'allocator_target': '../base/allocator/allocator.gyp:allocator',
43     'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome',
44     'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
45     'repack_locales_cmd': ['python', 'tools/build/repack_locales.py'],
46     # TODO: remove this helper when we have loops in GYP
47     'apply_locales_cmd': ['python', '<(DEPTH)/build/apply_locales.py'],
48     'conditions': [
49       ['OS=="win"', {
50         'nacl_defines': [
51           'NACL_WINDOWS=1',
52           'NACL_LINUX=0',
53           'NACL_OSX=0',
54         ],
55         'platform_locale_settings_grd':
56             'app/resources/locale_settings_win.grd',
57       },],
58       ['OS=="linux"', {
59         'nacl_defines': [
60           'NACL_WINDOWS=0',
61           'NACL_LINUX=1',
62           'NACL_OSX=0',
63         ],
64         'conditions': [
65           ['chromeos==1', {
66             'platform_locale_settings_grd':
67                 'app/resources/locale_settings_cros.grd',
68           }],
69           ['chromeos!=1', {
70             'platform_locale_settings_grd':
71                 'app/resources/locale_settings_linux.grd',
72           }],
73         ],
74       },],
75       ['OS=="mac"', {
76         'tweak_info_plist_path': 'tools/build/mac/tweak_info_plist',
77         'nacl_defines': [
78           'NACL_WINDOWS=0',
79           'NACL_LINUX=0',
80           'NACL_OSX=1',
81         ],
82         'platform_locale_settings_grd':
83             'app/resources/locale_settings_mac.grd',
84         'conditions': [
85           ['branding=="Chrome"', {
86             'mac_bundle_id': 'com.google.Chrome',
87             'mac_creator': 'rimZ',
88             # The policy .grd file also needs the bundle id.
89             'grit_defines': ['-D', 'mac_bundle_id=com.google.Chrome'],
90           }, {  # else: branding!="Chrome"
91             'mac_bundle_id': 'org.chromium.Chromium',
92             'mac_creator': 'Cr24',
93             # The policy .grd file also needs the bundle id.
94             'grit_defines': ['-D', 'mac_bundle_id=org.chromium.Chromium'],
95           }],  # branding
96         ],  # conditions
97       }],  # OS=="mac"
98       ['target_arch=="ia32"', {
99         'nacl_defines': [
100           # TODO(gregoryd): consider getting this from NaCl's common.gypi
101           'NACL_TARGET_SUBARCH=32',
102           'NACL_BUILD_SUBARCH=32',
103         ],
104       }],
105       ['target_arch=="x64"', {
106         'nacl_defines': [
107           # TODO(gregoryd): consider getting this from NaCl's common.gypi
108           'NACL_TARGET_SUBARCH=64',
109           'NACL_BUILD_SUBARCH=64',
110         ],
111       }],
112     ],  # conditions
113   },  # variables
114   'includes': [
115     # Place some targets in gypi files to reduce contention on this file.
116     # By using an include, we keep everything in a single xcodeproj file.
117     # Note on Win64 targets: targets that end with win64 be used
118     # on 64-bit Windows only. Targets that end with nacl_win64 should be used
119     # by Native Client only.
120     'app/policy/policy_templates.gypi',
121     'chrome_browser.gypi',
122     'chrome_common.gypi',
123     'chrome_dll.gypi',
124     'chrome_exe.gypi',
125     'chrome_installer.gypi',
126     'chrome_installer_util.gypi',
127     'chrome_renderer.gypi',
128     'chrome_tests.gypi',
129     'common_constants.gypi',
130     'nacl.gypi',
131   ],
132   'targets': [
133     {
134       # TODO(mark): It would be better if each static library that needed
135       # to run grit would list its own .grd files, but unfortunately some
136       # of the static libraries currently have circular dependencies among
137       # generated headers.
138       'target_name': 'chrome_resources',
139       'type': 'none',
140       'msvs_guid': 'B95AB527-F7DB-41E9-AD91-EB51EE0F56BE',
141       'actions': [
142         # Data resources.
143         {
144           'action_name': 'autofill_resources',
145           'variables': {
146             'grit_grd_file': 'browser/autofill/autofill_resources.grd',
147           },
148           'includes': [ '../build/grit_action.gypi' ],
149         },
150         {
151           'action_name': 'browser_resources',
152           'variables': {
153             'grit_grd_file': 'browser/browser_resources.grd',
154           },
155           'includes': [ '../build/grit_action.gypi' ],
156         },
157         {
158           'action_name': 'common_resources',
159           'variables': {
160             'grit_grd_file': 'common/common_resources.grd',
161           },
162           'includes': [ '../build/grit_action.gypi' ],
163         },
164         {
165           'action_name': 'renderer_resources',
166           'variables': {
167             'grit_grd_file': 'renderer/renderer_resources.grd',
168           },
169           'includes': [ '../build/grit_action.gypi' ],
170         },
171       ],
172       'includes': [ '../build/grit_target.gypi' ],
173     },
174     {
175       # TODO(mark): It would be better if each static library that needed
176       # to run grit would list its own .grd files, but unfortunately some
177       # of the static libraries currently have circular dependencies among
178       # generated headers.
179       'target_name': 'chrome_strings',
180       'msvs_guid': 'D9DDAF60-663F-49CC-90DC-3D08CC3D1B28',
181       'type': 'none',
182       'conditions': [
183         ['OS=="win"', {
184           # HACK(nsylvain): We want to enforce a fake dependency on
185           # intaller_util_string.  install_util depends on both
186           # chrome_strings and installer_util_strings, but for some reasons
187           # Incredibuild does not enforce it (most likely a bug). By changing
188           # the type and making sure we depend on installer_util_strings, it
189           # will always get built before installer_util.
190           'type': 'dummy_executable',
191           'dependencies': ['installer_util_strings'],
192         }],
193       ],
194       'actions': [
195         # Localizable resources.
196         {
197           'action_name': 'locale_settings',
198           'variables': {
199             'grit_grd_file': 'app/resources/locale_settings.grd',
200           },
201           'includes': [ '../build/grit_action.gypi' ],
202         },
203         {
204           'action_name': 'chromium_strings.grd',
205           'variables': {
206             'grit_grd_file': 'app/chromium_strings.grd',
207           },
208           'includes': [ '../build/grit_action.gypi' ],
209         },
210         {
211           'action_name': 'generated_resources',
212           'variables': {
213             'grit_grd_file': 'app/generated_resources.grd',
214           },
215           'includes': [ '../build/grit_action.gypi' ],
216         },
217         {
218           'action_name': 'google_chrome_strings',
219           'variables': {
220             'grit_grd_file': 'app/google_chrome_strings.grd',
221           },
222           'includes': [ '../build/grit_action.gypi' ],
223         },
224       ],
225       'includes': [ '../build/grit_target.gypi' ],
226     },
227     {
228       'target_name': 'theme_resources',
229       'type': 'none',
230       'msvs_guid' : 'A158FB0A-25E4-6523-6B5A-4BB294B73D31',
231       'actions': [
232         {
233           'action_name': 'theme_resources',
234           'variables': {
235             'grit_grd_file': 'app/theme/theme_resources.grd',
236           },
237           'includes': [ '../build/grit_action.gypi' ],
238         },
239       ],
240       'includes': [ '../build/grit_target.gypi' ],
241     },
242     {
243       'target_name': 'platform_locale_settings',
244       'type': 'none',
245       'actions': [
246         {
247           'action_name': 'platform_locale_settings',
248           'variables': {
249             'grit_grd_file': '<(platform_locale_settings_grd)',
250           },
251           'includes': [ '../build/grit_action.gypi' ],
252         },
253       ],
254       'includes': [ '../build/grit_target.gypi' ],
255     },
256     {
257       'target_name': 'chrome_extra_resources',
258       'type': 'none',
259       'dependencies': [
260         '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:generate_devtools_grd',
261       ],
262       # These resources end up in resources.pak because they are resources
263       # used by internal pages.  Putting them in a spearate pak file makes
264       # it easier for us to reference them internally.
265       'actions': [
266         {
267           'action_name': 'component_extension_resources',
268           'variables': {
269             'grit_grd_file': 'browser/resources/component_extension_resources.grd',
270           },
271           'includes': [ '../build/grit_action.gypi' ],
272         },
273         {
274           'action_name': 'net_internals_resources',
275           'variables': {
276             'grit_grd_file': 'browser/resources/net_internals_resources.grd',
277           },
278           'includes': [ '../build/grit_action.gypi' ],
279         },
280         {
281           'action_name': 'shared_resources',
282           'variables': {
283             'grit_grd_file': 'browser/resources/shared_resources.grd',
284           },
285           'includes': [ '../build/grit_action.gypi' ],
286         },
287         {
288           'action_name': 'sync_internals_resources',
289           'variables': {
290             'grit_grd_file': 'browser/resources/sync_internals_resources.grd',
291           },
292           'includes': [ '../build/grit_action.gypi' ],
293         },
294         {
295           'action_name': 'devtools_resources',
296           # This can't use ../build/grit_action.gypi because the grd file
297           # is generated a build time, so the trick of using grit_info to get
298           # the real inputs/outputs at GYP time isn't possible.
299           'variables': {
300             'grit_cmd': ['python', '../tools/grit/grit.py'],
301             'grit_grd_file': '<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd',
302           },
303           'inputs': [
304             '<(grit_grd_file)',
305           ],
306           'outputs': [
307             '<(grit_out_dir)/grit/devtools_resources.h',
308             '<(grit_out_dir)/devtools_resources.pak',
309             '<(grit_out_dir)/grit/devtools_resources_map.cc',
310             '<(grit_out_dir)/grit/devtools_resources_map.h',
311           ],
312           'action': ['<@(grit_cmd)',
313                      '-i', '<(grit_grd_file)', 'build',
314                      '-o', '<(grit_out_dir)',
315                      '-D', 'SHARED_INTERMEDIATE_DIR=<(SHARED_INTERMEDIATE_DIR)',
316                      '<@(grit_defines)' ],
317           'message': 'Generating resources from <(grit_grd_file)',
318         },
319       ],
320       'includes': [ '../build/grit_target.gypi' ],
321     },
322     {
323       'target_name': 'default_extensions',
324       'type': 'none',
325       'msvs_guid': 'DA9BAB64-91DC-419B-AFDE-6FF8C569E83A',
326       'conditions': [
327         ['OS=="win"', {
328           'copies': [
329             {
330               'destination': '<(PRODUCT_DIR)/extensions',
331               'files': [
332                 'browser/extensions/default_extensions/external_extensions.json'
333               ]
334             }
335           ],
336         }],
337         ['OS=="linux" and chromeos==1 and branding=="Chrome"', {
338           'copies': [
339             {
340               'destination': '<(PRODUCT_DIR)/extensions',
341               'files': [
342                 '>!@(ls browser/extensions/default_extensions/chromeos/cache/*)'
343               ]
344             }
345           ],
346         }],
347       ],
348     },
349     {
350       'target_name': 'debugger',
351       'type': '<(library)',
352       'msvs_guid': '57823D8C-A317-4713-9125-2C91FDFD12D6',
353       'dependencies': [
354         'chrome_resources',
355         'chrome_strings',
356         '../net/net.gyp:http_server',
357         'theme_resources',
358         '../skia/skia.gyp:skia',
359         '../third_party/icu/icu.gyp:icui18n',
360         '../third_party/icu/icu.gyp:icuuc',
361       ],
362       'include_dirs': [
363         '..',
364       ],
365       'sources': [
366         'browser/debugger/browser_list_tabcontents_provider.cc',
367         'browser/debugger/browser_list_tabcontents_provider.h',
368         'browser/debugger/debugger_remote_service.cc',
369         'browser/debugger/debugger_remote_service.h',
370         'browser/debugger/devtools_client_host.cc',
371         'browser/debugger/devtools_client_host.h',
372         'browser/debugger/devtools_http_protocol_handler.cc',
373         'browser/debugger/devtools_http_protocol_handler.h',
374         'browser/debugger/devtools_manager.cc',
375         'browser/debugger/devtools_manager.h',
376         'browser/debugger/devtools_netlog_observer.cc',
377         'browser/debugger/devtools_netlog_observer.h',
378         'browser/debugger/devtools_protocol_handler.cc',
379         'browser/debugger/devtools_protocol_handler.h',
380         'browser/debugger/devtools_remote.h',
381         'browser/debugger/devtools_remote_listen_socket.cc',
382         'browser/debugger/devtools_remote_listen_socket.h',
383         'browser/debugger/devtools_remote_message.cc',
384         'browser/debugger/devtools_remote_message.h',
385         'browser/debugger/devtools_remote_service.cc',
386         'browser/debugger/devtools_remote_service.h',
387         'browser/debugger/devtools_handler.cc',
388         'browser/debugger/devtools_handler.h',
389         'browser/debugger/devtools_toggle_action.h',
390         'browser/debugger/devtools_window.cc',
391         'browser/debugger/devtools_window.h',
392         'browser/debugger/extension_ports_remote_service.cc',
393         'browser/debugger/extension_ports_remote_service.h',
394         'browser/debugger/inspectable_tab_proxy.cc',
395         'browser/debugger/inspectable_tab_proxy.h',
396       ],
397       'conditions': [
398         ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
399           'dependencies': [
400             '../build/linux/system.gyp:gtk',
401           ],
402         }],
403       ],
404     },
405     {
406       'target_name': 'utility',
407       'type': '<(library)',
408       'msvs_guid': '4D2B38E6-65FF-4F97-B88A-E441DF54EBF7',
409       'dependencies': [
410         '../base/base.gyp:base',
411         '../skia/skia.gyp:skia',
412       ],
413       'sources': [
414         'utility/utility_main.cc',
415         'utility/utility_thread.cc',
416         'utility/utility_thread.h',
417       ],
418       'include_dirs': [
419         '..',
420       ],
421       'conditions': [
422         ['OS=="linux"', {
423           'dependencies': [
424             '../build/linux/system.gyp:gtk',
425           ],
426         }],
427       ],
428     },
429     {
430       'target_name': 'profile_import',
431       'type': '<(library)',
432       'dependencies': [
433         '../base/base.gyp:base',
434       ],
435       'sources': [
436         'profile_import/profile_import_main.cc',
437         'profile_import/profile_import_thread.cc',
438         'profile_import/profile_import_thread.h',
439       ],
440     },
441     {
442       # Provides a syncapi dynamic library target from checked-in binaries,
443       # or from compiling a stub implementation.
444       'target_name': 'syncapi',
445       'type': '<(library)',
446       'sources': [
447         'browser/sync/engine/http_post_provider_factory.h',
448         'browser/sync/engine/http_post_provider_interface.h',
449         'browser/sync/engine/syncapi.cc',
450         'browser/sync/engine/syncapi.h',
451       ],
452       'include_dirs': [
453         '..',
454       ],
455       'defines' : [
456         '_CRT_SECURE_NO_WARNINGS',
457         '_USE_32BIT_TIME_T',
458       ],
459       'dependencies': [
460         '../base/base.gyp:base',
461         '../build/temp_gyp/googleurl.gyp:googleurl',
462         '../jingle/jingle.gyp:notifier',
463         '../third_party/icu/icu.gyp:icuuc',
464         '../third_party/sqlite/sqlite.gyp:sqlite',
465         'app/policy/cloud_policy_codegen.gyp:policy',
466         'browser/sync/protocol/sync_proto.gyp:sync_proto_cpp',
467         'common_constants',
468         'common_net',
469         'sync',
470         'sync_notifier',
471       ],
472       'export_dependent_settings': [
473         'browser/sync/protocol/sync_proto.gyp:sync_proto_cpp',
474         'sync',
475       ],
476       # This target exports a hard dependency because syncapi.h includes
477       # generated proto header files from sync_proto_cpp.
478       'hard_dependency': 1,
479     },
480     {
481       'target_name': 'sync',
482       'type': '<(library)',
483       'sources': [
484         'browser/sync/engine/all_status.cc',
485         'browser/sync/engine/all_status.h',
486         'browser/sync/engine/apply_updates_command.cc',
487         'browser/sync/engine/apply_updates_command.h',
488         'browser/sync/engine/build_and_process_conflict_sets_command.cc',
489         'browser/sync/engine/build_and_process_conflict_sets_command.h',
490         'browser/sync/engine/build_commit_command.cc',
491         'browser/sync/engine/build_commit_command.h',
492         'browser/sync/engine/change_reorder_buffer.cc',
493         'browser/sync/engine/change_reorder_buffer.h',
494         'browser/sync/engine/cleanup_disabled_types_command.cc',
495         'browser/sync/engine/cleanup_disabled_types_command.h',
496         'browser/sync/engine/clear_data_command.cc',
497         'browser/sync/engine/clear_data_command.h',
498         'browser/sync/engine/conflict_resolver.cc',
499         'browser/sync/engine/conflict_resolver.h',
500         'browser/sync/engine/download_updates_command.cc',
501         'browser/sync/engine/download_updates_command.h',
502         'browser/sync/engine/get_commit_ids_command.cc',
503         'browser/sync/engine/get_commit_ids_command.h',
504         'browser/sync/engine/idle_query_linux.cc',
505         'browser/sync/engine/idle_query_linux.h',
506         'browser/sync/engine/model_changing_syncer_command.cc',
507         'browser/sync/engine/model_changing_syncer_command.h',
508         'browser/sync/engine/model_safe_worker.cc',
509         'browser/sync/engine/model_safe_worker.h',
510         'browser/sync/engine/net/server_connection_manager.cc',
511         'browser/sync/engine/net/server_connection_manager.h',
512         'browser/sync/engine/net/syncapi_server_connection_manager.cc',
513         'browser/sync/engine/net/syncapi_server_connection_manager.h',
514         'browser/sync/engine/net/url_translator.cc',
515         'browser/sync/engine/net/url_translator.h',
516         'browser/sync/engine/nudge_source.h',
517         'browser/sync/engine/polling_constants.cc',
518         'browser/sync/engine/polling_constants.h',
519         'browser/sync/engine/post_commit_message_command.cc',
520         'browser/sync/engine/post_commit_message_command.h',
521         'browser/sync/engine/process_commit_response_command.cc',
522         'browser/sync/engine/process_commit_response_command.h',
523         'browser/sync/engine/process_updates_command.cc',
524         'browser/sync/engine/process_updates_command.h',
525         'browser/sync/engine/resolve_conflicts_command.cc',
526         'browser/sync/engine/resolve_conflicts_command.h',
527         'browser/sync/engine/store_timestamps_command.cc',
528         'browser/sync/engine/store_timestamps_command.h',
529         'browser/sync/engine/syncer.cc',
530         'browser/sync/engine/syncer.h',
531         'browser/sync/engine/syncer_command.cc',
532         'browser/sync/engine/syncer_command.h',
533         'browser/sync/engine/syncer_end_command.cc',
534         'browser/sync/engine/syncer_end_command.h',
535         'browser/sync/engine/syncer_proto_util.cc',
536         'browser/sync/engine/syncer_proto_util.h',
537         'browser/sync/engine/syncer_thread_adapter.cc',
538         'browser/sync/engine/syncer_thread_adapter.h',
539         'browser/sync/engine/syncer_thread2.cc',
540         'browser/sync/engine/syncer_thread2.h',
541         'browser/sync/engine/syncer_thread.cc',
542         'browser/sync/engine/syncer_thread.h',
543         'browser/sync/engine/syncer_types.h',
544         'browser/sync/engine/syncer_util.cc',
545         'browser/sync/engine/syncer_util.h',
546         'browser/sync/engine/syncproto.h',
547         'browser/sync/engine/update_applicator.cc',
548         'browser/sync/engine/update_applicator.h',
549         'browser/sync/engine/verify_updates_command.cc',
550         'browser/sync/engine/verify_updates_command.h',
551         'browser/sync/js_arg_list.cc',
552         'browser/sync/js_arg_list.h',
553         'browser/sync/js_backend.h',
554         'browser/sync/js_event_handler.h',
555         'browser/sync/js_event_handler_list.cc',
556         'browser/sync/js_event_handler_list.h',
557         'browser/sync/js_event_router.h',
558         'browser/sync/js_frontend.h',
559         'browser/sync/js_sync_manager_observer.cc',
560         'browser/sync/js_sync_manager_observer.h',
561         'browser/sync/protocol/proto_enum_conversions.cc',
562         'browser/sync/protocol/proto_enum_conversions.h',
563         'browser/sync/protocol/proto_value_conversions.cc',
564         'browser/sync/protocol/proto_value_conversions.h',
565         'browser/sync/protocol/service_constants.h',
566         'browser/sync/sessions/ordered_commit_set.cc',
567         'browser/sync/sessions/ordered_commit_set.h',
568         'browser/sync/sessions/session_state.cc',
569         'browser/sync/sessions/session_state.h',
570         'browser/sync/sessions/status_controller.cc',
571         'browser/sync/sessions/status_controller.h',
572         'browser/sync/sessions/sync_session.cc',
573         'browser/sync/sessions/sync_session.h',
574         'browser/sync/sessions/sync_session_context.cc',
575         'browser/sync/sessions/sync_session_context.h',
576         'browser/sync/syncable/autofill_migration.h',
577         'browser/sync/syncable/blob.h',
578         'browser/sync/syncable/dir_open_result.h',
579         'browser/sync/syncable/directory_backing_store.cc',
580         'browser/sync/syncable/directory_backing_store.h',
581         'browser/sync/syncable/directory_event.h',
582         'browser/sync/syncable/directory_manager.cc',
583         'browser/sync/syncable/directory_manager.h',
584         'browser/sync/syncable/model_type.cc',
585         'browser/sync/syncable/model_type.h',
586         'browser/sync/syncable/model_type_payload_map.cc',
587         'browser/sync/syncable/model_type_payload_map.h',
588         'browser/sync/syncable/nigori_util.cc',
589         'browser/sync/syncable/nigori_util.h',
590         'browser/sync/syncable/syncable-inl.h',
591         'browser/sync/syncable/syncable.cc',
592         'browser/sync/syncable/syncable.h',
593         'browser/sync/syncable/syncable_changes_version.h',
594         'browser/sync/syncable/syncable_columns.h',
595         'browser/sync/syncable/syncable_id.cc',
596         'browser/sync/syncable/syncable_id.h',
597         'browser/sync/syncable/syncable_enum_conversions.cc',
598         'browser/sync/syncable/syncable_enum_conversions.h',
599         'browser/sync/util/channel.h',
600         'browser/sync/util/crypto_helpers.cc',
601         'browser/sync/util/crypto_helpers.h',
602         'browser/sync/util/cryptographer.cc',
603         'browser/sync/util/cryptographer.h',
604         'browser/sync/util/dbgq.h',
605         'browser/sync/util/extensions_activity_monitor.cc',
606         'browser/sync/util/extensions_activity_monitor.h',
607         'browser/sync/util/nigori.cc',
608         'browser/sync/util/nigori.h',
609         'browser/sync/util/user_settings.cc',
610         'browser/sync/util/user_settings.h',
611         'browser/sync/util/user_settings_posix.cc',
612         'browser/sync/util/user_settings_win.cc',
613       ],
614       'include_dirs': [
615         '..',
616       ],
617       'defines' : [
618         'SYNC_ENGINE_VERSION_STRING="Unknown"',
619         '_CRT_SECURE_NO_WARNINGS',
620         '_USE_32BIT_TIME_T',
621       ],
622       'dependencies': [
623         'common',
624         '../base/base.gyp:base',
625         '../skia/skia.gyp:skia',
626         'browser/sync/protocol/sync_proto.gyp:sync_proto_cpp',
627       ],
628       'export_dependent_settings': [
629         '../base/base.gyp:base',
630         'browser/sync/protocol/sync_proto.gyp:sync_proto_cpp',
631       ],
632       # This target exports a hard dependency because its header files include
633       # protobuf header files from sync_proto_cpp.
634       'hard_dependency': 1,
635       'conditions': [
636         ['OS=="win"', {
637           'sources' : [
638             'browser/sync/util/data_encryption.cc',
639             'browser/sync/util/data_encryption.h',
640           ],
641         }],
642         ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
643           'dependencies': [
644             '../build/linux/system.gyp:gtk',
645           ],
646           'link_settings': {
647             'libraries': [
648               '-lXss',
649             ],
650           },
651         }],
652         ['OS=="linux" and chromeos==1', {
653           'include_dirs': [
654             '<(grit_out_dir)',
655           ],
656         }],
657         ['OS=="mac"', {
658           'link_settings': {
659             'libraries': [
660               '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
661             ],
662           },
663         }],
664       ],
665     },
666     # A library for sending and receiving server-issued notifications.
667     {
668       'target_name': 'sync_notifier',
669       'type': '<(library)',
670       'sources': [
671         'browser/sync/notifier/cache_invalidation_packet_handler.cc',
672         'browser/sync/notifier/cache_invalidation_packet_handler.h',
673         'browser/sync/notifier/chrome_invalidation_client.cc',
674         'browser/sync/notifier/chrome_invalidation_client.h',
675         'browser/sync/notifier/chrome_system_resources.cc',
676         'browser/sync/notifier/chrome_system_resources.h',
677         'browser/sync/notifier/invalidation_notifier.h',
678         'browser/sync/notifier/invalidation_notifier.cc',
679         'browser/sync/notifier/invalidation_util.cc',
680         'browser/sync/notifier/invalidation_util.h',
681         'browser/sync/notifier/non_blocking_invalidation_notifier.h',
682         'browser/sync/notifier/non_blocking_invalidation_notifier.cc',
683         'browser/sync/notifier/p2p_notifier.h',
684         'browser/sync/notifier/p2p_notifier.cc',
685         'browser/sync/notifier/registration_manager.cc',
686         'browser/sync/notifier/registration_manager.h',
687         'browser/sync/notifier/state_writer.h',
688         'browser/sync/notifier/sync_notifier.h',
689         'browser/sync/notifier/sync_notifier_factory.h',
690         'browser/sync/notifier/sync_notifier_factory.cc',
691         'browser/sync/notifier/sync_notifier_callback.h',
692       ],
693       'include_dirs': [
694         '..',
695       ],
696       'dependencies': [
697         'sync',
698         '../jingle/jingle.gyp:notifier',
699         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
700       ],
701       # This target exports a hard dependency because it depends on
702       # cacheinvalidation (which itself has hard_dependency set).
703       'hard_dependency': 1,
704       'export_dependent_settings': [
705         '../jingle/jingle.gyp:notifier',
706         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
707       ],
708     },
709     {
710       'target_name': 'service',
711       'type': '<(library)',
712       'msvs_guid': '2DA87614-55C5-4E56-A17E-0CD099786197',
713       'dependencies': [
714         'chrome_strings',
715         'common',
716         'common_net',
717         '../base/base.gyp:base',
718         '../jingle/jingle.gyp:notifier',
719         '../printing/printing.gyp:printing',
720         '../skia/skia.gyp:skia',
721         '../third_party/libjingle/libjingle.gyp:libjingle',
722       ],
723       'sources': [
724         'service/service_child_process_host.cc',
725         'service/service_child_process_host.h',
726         'service/service_ipc_server.cc',
727         'service/service_ipc_server.h',
728         'service/service_main.cc',
729         'service/service_process.cc',
730         'service/service_process.h',
731         'service/service_process_prefs.cc',
732         'service/service_process_prefs.h',
733         'service/service_utility_process_host.cc',
734         'service/service_utility_process_host.h',
735         'service/cloud_print/cloud_print_consts.cc',
736         'service/cloud_print/cloud_print_consts.h',
737         'service/cloud_print/cloud_print_helpers.cc',
738         'service/cloud_print/cloud_print_helpers.h',
739         'service/cloud_print/cloud_print_proxy.cc',
740         'service/cloud_print/cloud_print_proxy.h',
741         'service/cloud_print/cloud_print_proxy_backend.cc',
742         'service/cloud_print/cloud_print_proxy_backend.h',
743         'service/cloud_print/cloud_print_url_fetcher.cc',
744         'service/cloud_print/cloud_print_url_fetcher.h',
745         'service/cloud_print/job_status_updater.cc',
746         'service/cloud_print/job_status_updater.h',
747         'service/cloud_print/print_system_dummy.cc',
748         'service/cloud_print/print_system.cc',
749         'service/cloud_print/print_system.h',
750         'service/cloud_print/printer_job_handler.cc',
751         'service/cloud_print/printer_job_handler.h',
752         'service/gaia/service_gaia_authenticator.cc',
753         'service/gaia/service_gaia_authenticator.h',
754         'service/net/service_url_request_context.cc',
755         'service/net/service_url_request_context.h',
756         'service/remoting/chromoting_host_manager.cc',
757         'service/remoting/chromoting_host_manager.h',
758       ],
759       'include_dirs': [
760         '..',
761       ],
762       'conditions': [
763         ['OS=="win"', {
764           'defines': [
765             # CP_PRINT_SYSTEM_AVAILABLE disables default dummy implementation
766             # of cloud print system, and allows to use custom implementaiton.
767             'CP_PRINT_SYSTEM_AVAILABLE',
768           ],
769           'sources': [
770             'service/cloud_print/print_system_win.cc',
771           ],
772         }],
773         ['OS=="linux"', {
774           'dependencies': [
775             '../build/linux/system.gyp:gtk',
776           ],
777         }],
778         ['use_cups==1', {
779           'defines': [
780             # CP_PRINT_SYSTEM_AVAILABLE disables default dummy implementation
781             # of cloud print system, and allows to use custom implementaiton.
782             'CP_PRINT_SYSTEM_AVAILABLE',
783           ],
784           'sources': [
785             'service/cloud_print/print_system_cups.cc',
786           ],
787           'conditions': [
788             ['OS=="mac"', {
789               'link_settings': {
790                 'libraries': [
791                   '$(SDKROOT)/usr/lib/libcups.dylib',
792                 ]
793               },
794             }, {
795               'link_settings': {
796                 'libraries': [
797                   '-lcups',
798                   '-lgcrypt',
799                 ],
800               },
801             }],
802           ],
803         }],
804         ['remoting==1', {
805           'dependencies': [
806             '../remoting/remoting.gyp:chromoting_host',
807           ],
808         }],
809         ['remoting==0', {
810           'sources!': [
811             'service/remoting/chromoting_host_manager.cc',
812             'service/remoting/chromoting_host_manager.h',
813           ],
814         }],
815       ],
816     },
817     {
818       'target_name': 'ipclist',
819       'type': 'executable',
820       'dependencies': [
821          'chrome',
822          'chrome_resources',
823          'chrome_strings',
824          'test_support_common',
825          'test_support_ui',
826          '../skia/skia.gyp:skia',
827          '../testing/gtest.gyp:gtest',
828          '../third_party/libxslt/libxslt.gyp:libxslt',
829          '../third_party/npapi/npapi.gyp:npapi',
830       ],
831       'include_dirs': [
832          '..',
833       ],
834       'sources': [
835         'tools/ipclist/all_messages.h',
836         'tools/ipclist/ipclist.cc',
837       ],
838     },
839   ],
840   'conditions': [
841     ['OS=="mac"',
842       { 'targets': [
843         {
844           'target_name': 'helper_app',
845           'type': 'executable',
846           'product_name': '<(mac_product_name) Helper',
847           'mac_bundle': 1,
848           'dependencies': [
849             'chrome_dll',
850             'interpose_dependency_shim',
851             'infoplist_strings_tool',
852           ],
853           'sources': [
854             # chrome_exe_main_mac.mm's main() is the entry point for
855             # the "chrome" (browser app) target.  All it does is jump
856             # to chrome_dll's ChromeMain.  This is appropriate for
857             # helper processes too, because the logic to discriminate
858             # between process types at run time is actually directed
859             # by the --type command line argument processed by
860             # ChromeMain.  Sharing chrome_exe_main_mac.mm with the
861             # browser app will suffice for now.
862             'app/chrome_exe_main_mac.mm',
863             'app/helper-Info.plist',
864           ],
865           # TODO(mark): Come up with a fancier way to do this.  It should only
866           # be necessary to list helper-Info.plist once, not the three times it
867           # is listed here.
868           'mac_bundle_resources!': [
869             'app/helper-Info.plist',
870           ],
871           # TODO(mark): For now, don't put any resources into this app.  Its
872           # resources directory will be a symbolic link to the browser app's
873           # resources directory.
874           'mac_bundle_resources/': [
875             ['exclude', '.*'],
876           ],
877           'xcode_settings': {
878             'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)',
879             'CHROMIUM_SHORT_NAME': '<(branding)',
880             'CHROMIUM_STRIP_SAVE_FILE': 'app/app.saves',
881             'INFOPLIST_FILE': 'app/helper-Info.plist',
882           },
883           'copies': [
884             {
885               'destination': '<(PRODUCT_DIR)/<(mac_product_name) Helper.app/Contents/MacOS',
886               'files': [
887                 '<(PRODUCT_DIR)/libplugin_carbon_interpose.dylib',
888               ],
889             },
890           ],
891           'actions': [
892             {
893               # Generate the InfoPlist.strings file
894               'action_name': 'Generate InfoPlist.strings files',
895               'variables': {
896                 'tool_path': '<(PRODUCT_DIR)/infoplist_strings_tool',
897                 # Unique dir to write to so the [lang].lproj/InfoPlist.strings
898                 # for the main app and the helper app don't name collide.
899                 'output_path': '<(INTERMEDIATE_DIR)/helper_infoplist_strings',
900               },
901               'conditions': [
902                 [ 'branding == "Chrome"', {
903                   'variables': {
904                      'branding_name': 'google_chrome_strings',
905                   },
906                 }, { # else branding!="Chrome"
907                   'variables': {
908                      'branding_name': 'chromium_strings',
909                   },
910                 }],
911               ],
912               'inputs': [
913                 '<(tool_path)',
914                 '<(version_path)',
915                 # TODO: remove this helper when we have loops in GYP
916                 '>!@(<(apply_locales_cmd) \'<(grit_out_dir)/<(branding_name)_ZZLOCALE.pak\' <(locales))',
917               ],
918               'outputs': [
919                 # TODO: remove this helper when we have loops in GYP
920                 '>!@(<(apply_locales_cmd) -d \'<(output_path)/ZZLOCALE.lproj/InfoPlist.strings\' <(locales))',
921               ],
922               'action': [
923                 '<(tool_path)',
924                 '-b', '<(branding_name)',
925                 '-v', '<(version_path)',
926                 '-g', '<(grit_out_dir)',
927                 '-o', '<(output_path)',
928                 '-t', 'helper',
929                 '<@(locales)',
930               ],
931               'message': 'Generating the language InfoPlist.strings files',
932               'process_outputs_as_mac_bundle_resources': 1,
933             },
934           ],
935           'postbuilds': [
936             {
937               # The framework (chrome_dll) defines its load-time path
938               # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
939               # (chrome).  A different relative path needs to be used in
940               # helper_app.
941               'postbuild_name': 'Fix Framework Link',
942               'action': [
943                 'install_name_tool',
944                 '-change',
945                 '@executable_path/../Versions/<(version_full)/<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
946                 '@executable_path/../../../<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
947                 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
948               ],
949             },
950             {
951               # Modify the Info.plist as needed.  The script explains why this
952               # is needed.  This is also done in the chrome and chrome_dll
953               # targets.  In this case, -b0, -k0, and -s0 are used because
954               # Breakpad, Keystone, and Subersion keys are never placed into
955               # the helper.
956               'postbuild_name': 'Tweak Info.plist',
957               'action': ['<(tweak_info_plist_path)',
958                          '-b0',
959                          '-k0',
960                          '-s0',
961                          '<(branding)',
962                          '<(mac_bundle_id)'],
963             },
964           ],
965           'conditions': [
966             ['mac_breakpad==1', {
967               'variables': {
968                 # A real .dSYM is needed for dump_syms to operate on.
969                 'mac_real_dsym': 1,
970               },
971             }],
972           ],
973         },  # target helper_app
974         {
975           # This produces the app mode loader, but not as a bundle. Chromium
976           # itself is responsible for producing bundles.
977           'target_name': 'app_mode_app',
978           'type': 'executable',
979           'product_name': '<(mac_product_name) App Mode Loader',
980           'sources': [
981             'app/app_mode_loader_mac.mm',
982             'common/app_mode_common_mac.h',
983             'common/app_mode_common_mac.mm',
984           ],
985           'include_dirs': [
986             '..',
987           ],
988           'link_settings': {
989             'libraries': [
990               '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
991               '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
992             ],
993           },
994         },  # target app_mode_app
995         {
996           # Convenience target to build a disk image.
997           'target_name': 'build_app_dmg',
998           # Don't place this in the 'all' list; most won't want it.
999           # In GYP, booleans are 0/1, not True/False.
1000           'suppress_wildcard': 1,
1001           'type': 'none',
1002           'dependencies': [
1003             'chrome',
1004           ],
1005           'variables': {
1006             'build_app_dmg_script_path': 'tools/build/mac/build_app_dmg',
1007           },
1008           'actions': [
1009             {
1010               'inputs': [
1011                 '<(build_app_dmg_script_path)',
1012                 '<(PRODUCT_DIR)/<(branding).app',
1013               ],
1014               'outputs': [
1015                 '<(PRODUCT_DIR)/<(branding).dmg',
1016               ],
1017               'action_name': 'build_app_dmg',
1018               'action': ['<(build_app_dmg_script_path)', '<@(branding)'],
1019             },
1020           ],  # 'actions'
1021         },
1022         {
1023           # Dummy target to allow chrome to require plugin_carbon_interpose to
1024           # build without actually linking to the resulting library.
1025           'target_name': 'interpose_dependency_shim',
1026           'type': 'executable',
1027           'dependencies': [
1028             'plugin_carbon_interpose',
1029           ],
1030           # In release, we end up with a strip step that is unhappy if there is
1031           # no binary. Rather than check in a new file for this temporary hack,
1032           # just generate a source file on the fly.
1033           'actions': [
1034             {
1035               'action_name': 'generate_stub_main',
1036               'process_outputs_as_sources': 1,
1037               'inputs': [],
1038               'outputs': [ '<(INTERMEDIATE_DIR)/dummy_main.c' ],
1039               'action': [
1040                 'bash', '-c',
1041                 'echo "int main() { return 0; }" > <(INTERMEDIATE_DIR)/dummy_main.c'
1042               ],
1043             },
1044           ],
1045         },
1046         {
1047           # dylib for interposing Carbon calls in the plugin process.
1048           'target_name': 'plugin_carbon_interpose',
1049           'type': 'shared_library',
1050           'dependencies': [
1051             'chrome_dll',
1052           ],
1053           'sources': [
1054             'browser/plugin_carbon_interpose_mac.cc',
1055           ],
1056           'include_dirs': [
1057             '..',
1058           ],
1059           'link_settings': {
1060             'libraries': [
1061               '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
1062             ],
1063           },
1064           'xcode_settings': {
1065             'DYLIB_COMPATIBILITY_VERSION': '<(version_mac_dylib)',
1066             'DYLIB_CURRENT_VERSION': '<(version_mac_dylib)',
1067             'DYLIB_INSTALL_NAME_BASE': '@executable_path',
1068           },
1069           'postbuilds': [
1070             {
1071               # The framework (chrome_dll) defines its load-time path
1072               # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
1073               # (chrome).  A different relative path needs to be used in
1074               # plugin_carbon_interpose, which runs in the helper_app.
1075               'postbuild_name': 'Fix Framework Link',
1076               'action': [
1077                 'install_name_tool',
1078                 '-change',
1079                 '@executable_path/../Versions/<(version_full)/<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
1080                 '@executable_path/../../../<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
1081                 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
1082               ],
1083             },
1084           ],
1085         },
1086         {
1087           'target_name': 'infoplist_strings_tool',
1088           'type': 'executable',
1089           'dependencies': [
1090             'chrome_strings',
1091             '../base/base.gyp:base',
1092             '../app/app.gyp:app_base',
1093           ],
1094           'include_dirs': [
1095             '<(grit_out_dir)',
1096           ],
1097           'sources': [
1098             'tools/mac_helpers/infoplist_strings_util.mm',
1099           ],
1100         },
1101       ],  # targets
1102     }, { # else: OS != "mac"
1103       'targets': [
1104         {
1105           'target_name': 'convert_dict',
1106           'type': 'executable',
1107           'msvs_guid': '42ECD5EC-722F-41DE-B6B8-83764C8016DF',
1108           'dependencies': [
1109             '../base/base.gyp:base',
1110             '../base/base.gyp:base_i18n',
1111             'convert_dict_lib',
1112             '../third_party/hunspell/hunspell.gyp:hunspell',
1113           ],
1114           'sources': [
1115             'tools/convert_dict/convert_dict.cc',
1116           ],
1117         },
1118         {
1119           'target_name': 'convert_dict_lib',
1120           'product_name': 'convert_dict',
1121           'type': 'static_library',
1122           'msvs_guid': '1F669F6B-3F4A-4308-E496-EE480BDF0B89',
1123           'include_dirs': [
1124             '..',
1125           ],
1126           'sources': [
1127             'tools/convert_dict/aff_reader.cc',
1128             'tools/convert_dict/aff_reader.h',
1129             'tools/convert_dict/dic_reader.cc',
1130             'tools/convert_dict/dic_reader.h',
1131             'tools/convert_dict/hunspell_reader.cc',
1132             'tools/convert_dict/hunspell_reader.h',
1133           ],
1134         },
1135         {
1136           'target_name': 'flush_cache',
1137           'type': 'executable',
1138           'msvs_guid': '4539AFB3-B8DC-47F3-A491-6DAC8FD26657',
1139           'dependencies': [
1140             '../base/base.gyp:base',
1141             '../base/base.gyp:test_support_base',
1142           ],
1143           'sources': [
1144             'tools/perf/flush_cache/flush_cache.cc',
1145           ],
1146         },
1147         {
1148           # Mac needs 'process_outputs_as_mac_bundle_resources' to be set,
1149           # and the option is only effective when the target type is native
1150           # binary. Hence we cannot build the Mac bundle resources here and
1151           # the action is duplicated in chrome_dll.gypi.
1152           'target_name': 'packed_extra_resources',
1153           'type': 'none',
1154           'variables': {
1155             'repack_path': '../tools/data_pack/repack.py',
1156           },
1157           'dependencies': [
1158             'chrome_extra_resources',
1159           ],
1160           'actions': [
1161             {
1162               'action_name': 'repack_resources',
1163               'variables': {
1164                 'pak_inputs': [
1165                   '<(grit_out_dir)/component_extension_resources.pak',
1166                   '<(grit_out_dir)/devtools_resources.pak',
1167                   '<(grit_out_dir)/net_internals_resources.pak',
1168                   '<(grit_out_dir)/shared_resources.pak',
1169                   '<(grit_out_dir)/sync_internals_resources.pak',
1170                 ],
1171               },
1172               'inputs': [
1173                 '<(repack_path)',
1174                 '<@(pak_inputs)',
1175               ],
1176               'outputs': [
1177                 '<(PRODUCT_DIR)/resources.pak',
1178               ],
1179               'action': ['python', '<(repack_path)', '<@(_outputs)',
1180                          '<@(pak_inputs)'],
1181             },
1182           ]
1183         }
1184       ],
1185     },],  # OS!="mac"
1186     ['OS=="linux"',
1187       { 'targets': [
1188         {
1189           'target_name': 'linux_symbols',
1190           'type': 'none',
1191           'conditions': [
1192             ['linux_dump_symbols==1', {
1193               'actions': [
1194                 {
1195                   'action_name': 'dump_symbols',
1196                   'inputs': [
1197                     '<(DEPTH)/build/linux/dump_app_syms',
1198                     '<(PRODUCT_DIR)/dump_syms',
1199                     '<(PRODUCT_DIR)/chrome',
1200                   ],
1201                   'outputs': [
1202                     '<(PRODUCT_DIR)/chrome.breakpad.<(target_arch)',
1203                   ],
1204                   'action': ['<(DEPTH)/build/linux/dump_app_syms',
1205                              '<(PRODUCT_DIR)/dump_syms',
1206                              '<(linux_strip_binary)',
1207                              '<(PRODUCT_DIR)/chrome',
1208                              '<@(_outputs)'],
1209                   'message': 'Dumping breakpad symbols to <(_outputs)',
1210                   'process_outputs_as_sources': 1,
1211                 },
1212               ],
1213               'dependencies': [
1214                 'chrome',
1215                 '../breakpad/breakpad.gyp:dump_syms',
1216               ],
1217             }],
1218             ['linux_strip_reliability_tests==1', {
1219               'actions': [
1220                 {
1221                   'action_name': 'strip_reliability_tests',
1222                   'inputs': [
1223                     '<(PRODUCT_DIR)/automated_ui_tests',
1224                     '<(PRODUCT_DIR)/reliability_tests',
1225                     '<(PRODUCT_DIR)/lib.target/_pyautolib.so',
1226                   ],
1227                   'outputs': [
1228                     '<(PRODUCT_DIR)/strip_reliability_tests.stamp',
1229                   ],
1230                   'action': ['strip',
1231                              '-g',
1232                              '<@(_inputs)'],
1233                   'message': 'Stripping reliability tests',
1234                 },
1235               ],
1236               'dependencies': [
1237                 'automated_ui_tests',
1238                 'reliability_tests',
1239               ],
1240             }],
1241           ],
1242         }
1243       ],
1244     },],  # OS=="linux"
1245     ['OS=="win"',
1246       { 'targets': [
1247         {
1248           # TODO(sgk):  remove this when we change the buildbots to
1249           # use the generated build\all.sln file to build the world.
1250           'target_name': 'pull_in_all',
1251           'type': 'none',
1252           'dependencies': [
1253             'installer/mini_installer.gyp:*',
1254             'installer/installer_tools.gyp:*',
1255             'installer/upgrade_test.gyp:*',
1256             '../app/app.gyp:*',
1257             '../base/base.gyp:*',
1258             '../chrome_frame/chrome_frame.gyp:*',
1259             '../content/content.gyp:*',
1260             '../ipc/ipc.gyp:*',
1261             '../media/media.gyp:*',
1262             '../net/net.gyp:*',
1263             '../ppapi/ppapi.gyp:*',
1264             '../printing/printing.gyp:*',
1265             '../sdch/sdch.gyp:*',
1266             '../skia/skia.gyp:*',
1267             '../testing/gmock.gyp:*',
1268             '../testing/gtest.gyp:*',
1269             '../third_party/bsdiff/bsdiff.gyp:*',
1270             '../third_party/bspatch/bspatch.gyp:*',
1271             '../third_party/bzip2/bzip2.gyp:*',
1272             '../third_party/codesighs/codesighs.gyp:*',
1273             '../third_party/iccjpeg/iccjpeg.gyp:*',
1274             '../third_party/icu/icu.gyp:*',
1275             '../third_party/libpng/libpng.gyp:*',
1276             '../third_party/libwebp/libwebp.gyp:*',
1277             '../third_party/libxslt/libxslt.gyp:*',
1278             '../third_party/lzma_sdk/lzma_sdk.gyp:*',
1279             '../third_party/modp_b64/modp_b64.gyp:*',
1280             '../third_party/npapi/npapi.gyp:*',
1281             '../third_party/qcms/qcms.gyp:*',
1282             '../third_party/sqlite/sqlite.gyp:*',
1283             '../third_party/zlib/zlib.gyp:*',
1284             '../ui/ui.gyp:*',
1285             '../webkit/support/webkit_support.gyp:*',
1286             '../webkit/webkit.gyp:*',
1288             '../build/temp_gyp/googleurl.gyp:*',
1290             '../breakpad/breakpad.gyp:*',
1291             '../courgette/courgette.gyp:*',
1292             '../rlz/rlz.gyp:*',
1293             '../sandbox/sandbox.gyp:*',
1294             '../tools/memory_watcher/memory_watcher.gyp:*',
1295             '../v8/tools/gyp/v8.gyp:v8_shell',
1296             '<(libjpeg_gyp_path):*',
1297           ],
1298           'conditions': [
1299             ['win_use_allocator_shim==1', {
1300               'dependencies': [
1301                 '../base/allocator/allocator.gyp:*',
1302               ],
1303             }],
1304           ],
1305         },
1306         {
1307           'target_name': 'chrome_dll_version',
1308           'type': 'none',
1309           #'msvs_guid': '414D4D24-5D65-498B-A33F-3A29AD3CDEDC',
1310           'dependencies': [
1311             '../build/util/build_util.gyp:lastchange',
1312           ],
1313           'direct_dependent_settings': {
1314             'include_dirs': [
1315               '<(SHARED_INTERMEDIATE_DIR)/chrome_dll_version',
1316             ],
1317           },
1318           'actions': [
1319             {
1320               'action_name': 'version',
1321               'variables': {
1322                 'lastchange_path':
1323                   '<(SHARED_INTERMEDIATE_DIR)/build/LASTCHANGE',
1324                 'template_input_path': 'app/chrome_dll_version.rc.version',
1325               },
1326               'conditions': [
1327                 [ 'branding == "Chrome"', {
1328                   'variables': {
1329                      'branding_path': 'app/theme/google_chrome/BRANDING',
1330                   },
1331                 }, { # else branding!="Chrome"
1332                   'variables': {
1333                      'branding_path': 'app/theme/chromium/BRANDING',
1334                   },
1335                 }],
1336               ],
1337               'inputs': [
1338                 '<(template_input_path)',
1339                 '<(version_path)',
1340                 '<(branding_path)',
1341                 '<(lastchange_path)',
1342               ],
1343               'outputs': [
1344                 '<(SHARED_INTERMEDIATE_DIR)/chrome_dll_version/chrome_dll_version.rc',
1345               ],
1346               'action': [
1347                 'python',
1348                 '<(version_py_path)',
1349                 '-f', '<(version_path)',
1350                 '-f', '<(branding_path)',
1351                 '-f', '<(lastchange_path)',
1352                 '<(template_input_path)',
1353                 '<@(_outputs)',
1354               ],
1355               'message': 'Generating version information in <(_outputs)'
1356             },
1357           ],
1358         },
1359         {
1360           'target_name': 'chrome_version_header',
1361           'type': 'none',
1362           'hard_dependency': 1,
1363           'dependencies': [
1364             '../build/util/build_util.gyp:lastchange',
1365           ],
1366           'actions': [
1367             {
1368               'action_name': 'version_header',
1369               'variables': {
1370                 'lastchange_path':
1371                   '<(SHARED_INTERMEDIATE_DIR)/build/LASTCHANGE',
1372               },
1373               'conditions': [
1374                 [ 'branding == "Chrome"', {
1375                   'variables': {
1376                      'branding_path': 'app/theme/google_chrome/BRANDING',
1377                   },
1378                 }, { # else branding!="Chrome"
1379                   'variables': {
1380                      'branding_path': 'app/theme/chromium/BRANDING',
1381                   },
1382                 }],
1383               ],
1384               'inputs': [
1385                 '<(version_path)',
1386                 '<(branding_path)',
1387                 '<(lastchange_path)',
1388                 'version.h.in',
1389               ],
1390               'outputs': [
1391                 '<(SHARED_INTERMEDIATE_DIR)/version.h',
1392               ],
1393               'action': [
1394                 'python',
1395                 '<(version_py_path)',
1396                 '-f', '<(version_path)',
1397                 '-f', '<(branding_path)',
1398                 '-f', '<(lastchange_path)',
1399                 'version.h.in',
1400                 '<@(_outputs)',
1401               ],
1402               'message': 'Generating version header file: <@(_outputs)',
1403             },
1404           ],
1405         },
1406         {
1407           'target_name': 'automation',
1408           'type': '<(library)',
1409           'msvs_guid': '1556EF78-C7E6-43C8-951F-F6B43AC0DD12',
1410           'dependencies': [
1411             'theme_resources',
1412             '../skia/skia.gyp:skia',
1413             '../testing/gtest.gyp:gtest',
1414           ],
1415           'include_dirs': [
1416             '..',
1417           ],
1418           'sources': [
1419              'test/automation/autocomplete_edit_proxy.cc',
1420              'test/automation/autocomplete_edit_proxy.h',
1421              'test/automation/automation_handle_tracker.cc',
1422              'test/automation/automation_handle_tracker.h',
1423              'test/automation/automation_json_requests.cc',
1424              'test/automation/automation_json_requests.h',
1425              'test/automation/automation_proxy.cc',
1426              'test/automation/automation_proxy.h',
1427              'test/automation/browser_proxy.cc',
1428              'test/automation/browser_proxy.h',
1429              'test/automation/dom_element_proxy.cc',
1430              'test/automation/dom_element_proxy.h',
1431              'test/automation/extension_proxy.cc',
1432              'test/automation/extension_proxy.h',
1433              'test/automation/javascript_execution_controller.cc',
1434              'test/automation/javascript_execution_controller.h',
1435              'test/automation/tab_proxy.cc',
1436              'test/automation/tab_proxy.h',
1437              'test/automation/window_proxy.cc',
1438              'test/automation/window_proxy.h',
1439           ],
1440         },
1441         {
1442           'target_name': 'crash_service',
1443           'type': 'executable',
1444           'msvs_guid': '89C1C190-A5D1-4EC4-BD6A-67FF2195C7CC',
1445           'dependencies': [
1446             'app/policy/cloud_policy_codegen.gyp:policy',
1447             'common_constants',
1448             'installer_util',
1449             '../base/base.gyp:base',
1450             '../breakpad/breakpad.gyp:breakpad_handler',
1451             '../breakpad/breakpad.gyp:breakpad_sender',
1452           ],
1453           'include_dirs': [
1454             '..',
1455           ],
1456           'sources': [
1457             'tools/crash_service/crash_service.cc',
1458             'tools/crash_service/crash_service.h',
1459             'tools/crash_service/main.cc',
1460           ],
1461           'msvs_settings': {
1462             'VCLinkerTool': {
1463               'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
1464             },
1465           },
1466         },
1467       ]},  # 'targets'
1468     ],  # OS=="win"
1469     ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
1470       'targets': [{
1471         'target_name': 'packed_resources',
1472         'type': 'none',
1473         'variables': {
1474           'repack_path': '../tools/data_pack/repack.py',
1475         },
1476         'actions': [
1477           # TODO(mark): These actions are duplicated for the Mac in the
1478           # chrome_dll target.  Can they be unified?
1479           #
1480           # Mac needs 'process_outputs_as_mac_bundle_resources' to be set,
1481           # and the option is only effective when the target type is native
1482           # binary. Hence we cannot build the Mac bundle resources here.
1483           {
1484             'action_name': 'repack_chrome',
1485             'variables': {
1486               'pak_inputs': [
1487                 '<(grit_out_dir)/autofill_resources.pak',
1488                 '<(grit_out_dir)/browser_resources.pak',
1489                 '<(grit_out_dir)/common_resources.pak',
1490                 '<(grit_out_dir)/default_plugin_resources/default_plugin_resources.pak',
1491                 '<(grit_out_dir)/renderer_resources.pak',
1492                 '<(grit_out_dir)/theme_resources.pak',
1493                 '<(SHARED_INTERMEDIATE_DIR)/app/app_resources/app_resources.pak',
1494                 '<(SHARED_INTERMEDIATE_DIR)/ui/gfx/gfx_resources.pak',
1495                 '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
1496                 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
1497                 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.pak',
1498               ],
1499             },
1500             'inputs': [
1501               '<(repack_path)',
1502               '<@(pak_inputs)',
1503             ],
1504             'outputs': [
1505               '<(INTERMEDIATE_DIR)/repack/chrome.pak',
1506             ],
1507             'action': ['python', '<(repack_path)', '<@(_outputs)',
1508                        '<@(pak_inputs)'],
1509           },
1510           {
1511             'action_name': 'repack_locales',
1512             'variables': {
1513               'conditions': [
1514                 ['branding=="Chrome"', {
1515                   'branding_flag': ['-b', 'google_chrome',],
1516                 }, {  # else: branding!="Chrome"
1517                   'branding_flag': ['-b', 'chromium',],
1518                 }],
1519               ],
1520             },
1521             'inputs': [
1522               'tools/build/repack_locales.py',
1523               # NOTE: Ideally the common command args would be shared amongst
1524               # inputs/outputs/action, but the args include shell variables
1525               # which need to be passed intact, and command expansion wants
1526               # to expand the shell variables. Adding the explicit quoting
1527               # here was the only way it seemed to work.
1528               '>!@(<(repack_locales_cmd) -i <(branding_flag) -g \'<(grit_out_dir)\' -s \'<(SHARED_INTERMEDIATE_DIR)\' -x \'<(INTERMEDIATE_DIR)\' <(locales))',
1529             ],
1530             'outputs': [
1531               '>!@(<(repack_locales_cmd) -o -g \'<(grit_out_dir)\' -s \'<(SHARED_INTERMEDIATE_DIR)\' -x \'<(INTERMEDIATE_DIR)\' <(locales))',
1532             ],
1533             'action': [
1534               '<@(repack_locales_cmd)',
1535               '<@(branding_flag)',
1536               '-g', '<(grit_out_dir)',
1537               '-s', '<(SHARED_INTERMEDIATE_DIR)',
1538               '-x', '<(INTERMEDIATE_DIR)',
1539               '<@(locales)',
1540             ],
1541           },
1542         ],
1543         # We'll install the resource files to the product directory.
1544         'copies': [
1545           {
1546             'destination': '<(PRODUCT_DIR)/locales',
1547             'files': [
1548               '>!@(<(repack_locales_cmd) -o -g \'<(grit_out_dir)\' -s \'<(SHARED_INTERMEDIATE_DIR)\' -x \'<(INTERMEDIATE_DIR)\' <(locales))',
1549             ],
1550           },
1551           {
1552             'destination': '<(PRODUCT_DIR)',
1553             'files': [
1554               '<(INTERMEDIATE_DIR)/repack/chrome.pak'
1555             ],
1556           },
1557         ],
1558       }],  # targets
1559     }],  # OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"
1560   ],  # 'conditions'
1563 # Local Variables:
1564 # tab-width:2
1565 # indent-tabs-mode:nil
1566 # End:
1567 # vim: set expandtab tabstop=2 shiftwidth=2: