gn: More helpful default args file
[chromium-blink-merge.git] / chrome / chrome.gyp
blobd3846a5732ad5ea938154539ea05103aaa27cf7d
1 # Copyright (c) 2012 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     # Define the common dependencies that contain all the actual
9     # Chromium functionality.  This list gets pulled in below by
10     # the link of the actual chrome (or chromium) executable on
11     # Linux or Mac, and into chrome.dll on Windows.
12     # NOTE: Most new includes should go in the OS!="ios" condition below.
13     #
14     # GN version is the group //chrome:browser_dependencies
15     'chromium_browser_dependencies': [
16       'common',
17       'browser',
18       '../sync/sync.gyp:sync',
19     ],
20     # GN version is the group //chrome:child_dependencies
21     'chromium_child_dependencies': [
22       'common',
23       '../sync/sync.gyp:sync',
24     ],
25     'allocator_target': '../base/allocator/allocator.gyp:allocator',
26     'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome',
27     'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
28     'conditions': [
29       ['OS!="ios"', {
30         'chromium_browser_dependencies': [
31           'debugger',
32           '../ppapi/ppapi_internal.gyp:ppapi_host',
33         ],
34         'chromium_child_dependencies': [
35           'plugin',
36           'renderer',
37           'utility',
38           '../content/content.gyp:content_gpu',
39           '../content/content.gyp:content_ppapi_plugin',
40           '../third_party/WebKit/public/blink_devtools.gyp:blink_devtools_frontend_resources',
41         ],
42         'conditions': [
43           [ 'cld_version==0 or cld_version==2', {
44             'chromium_child_dependencies': [
45               # Use whatever CLD2 data access mode that the application
46               # embedder is using.
47               '<(DEPTH)/third_party/cld_2/cld_2.gyp:cld2_platform_impl', ],
48           }],
49         ],
50       }],
51       ['enable_basic_printing==1 or enable_print_preview==1', {
52         'chromium_browser_dependencies': [
53           '../printing/printing.gyp:printing',
54         ],
55       }],
56       ['enable_print_preview==1', {
57         'chromium_browser_dependencies': [
58           'service',
59         ],
60       }],
61       ['OS=="win"', {
62         'platform_locale_settings_grd':
63             'app/resources/locale_settings_win.grd',
64       },],
65       ['OS=="linux"', {
66         'conditions': [
67           ['chromeos==1', {
68             'conditions': [
69               ['branding=="Chrome"', {
70                 'platform_locale_settings_grd':
71                     'app/resources/locale_settings_google_chromeos.grd',
72               }, {  # branding!=Chrome
73                 'platform_locale_settings_grd':
74                     'app/resources/locale_settings_chromiumos.grd',
75               }],
76             ]
77           }, {  # chromeos==0
78             'platform_locale_settings_grd':
79                 'app/resources/locale_settings_linux.grd',
80           }],
81         ],
82       },],
83       ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "linux"', {
84         'platform_locale_settings_grd':
85             'app/resources/locale_settings_linux.grd',
86       },],
87       ['OS=="mac"', {
88         'tweak_info_plist_path': '../build/mac/tweak_info_plist.py',
89         'platform_locale_settings_grd':
90             'app/resources/locale_settings_mac.grd',
91       }],  # OS=="mac"
92     ],  # conditions
93   },  # variables
94   'includes': [
95     # Place some targets in gypi files to reduce contention on this file.
96     # By using an include, we keep everything in a single xcodeproj file.
97     # Note on Win64 targets: targets that end with win64 be used
98     # on 64-bit Windows only. Targets that end with nacl_win64 should be used
99     # by Native Client only.
100     # NOTE: Most new includes should go in the OS!="ios" condition below.
101     '../build/chrome_settings.gypi',
102     '../build/util/version.gypi',
103     '../build/win_precompile.gypi',
104     'chrome_browser.gypi',
105     'chrome_browser_ui.gypi',
106     'chrome_common.gypi',
107     'chrome_installer_util.gypi',
108     '../components/nacl/nacl_defines.gypi',
109   ],
110   'conditions': [
111     ['OS!="ios"', {
112       'includes': [
113         '../apps/apps.gypi',
114         'app_installer/app_installer.gypi',
115         'chrome_debugger.gypi',
116         'chrome_dll.gypi',
117         'chrome_exe.gypi',
118         'chrome_installer.gypi',
119         'chrome_plugin.gypi',
120         'chrome_renderer.gypi',
121         'chrome_tests.gypi',
122         'chrome_tests_unit.gypi',
123         'chrome_utility.gypi',
124         'policy_templates.gypi',
125       ],
126       'targets': [
127         {
128           'target_name': 'default_extensions',
129           'type': 'none',
130           'conditions': [
131             ['OS=="win"', {
132               'copies': [
133                 {
134                   'destination': '<(PRODUCT_DIR)/extensions',
135                   'files': [
136                     'browser/extensions/default_extensions/external_extensions.json'
137                   ]
138                 }
139               ],
140             }]
141           ],
142         },
143       ],
144     }],  # OS!="ios"
145     ['OS=="mac"', {
146       'includes': [
147         'app_shim/app_shim.gypi',
148         'browser/apps/app_shim/browser_app_shim.gypi',
149       ],
150       'targets': [
151         {
152           'target_name': 'helper_app',
153           'type': 'executable',
154           'variables': { 'enable_wexit_time_destructors': 1, },
155           'product_name': '<(mac_product_name) Helper',
156           'mac_bundle': 1,
157           'dependencies': [
158             'chrome_dll',
159             'infoplist_strings_tool',
160           ],
161           'sources': [
162             # chrome_exe_main_mac.cc's main() is the entry point for
163             # the "chrome" (browser app) target.  All it does is jump
164             # to chrome_dll's ChromeMain.  This is appropriate for
165             # helper processes too, because the logic to discriminate
166             # between process types at run time is actually directed
167             # by the --type command line argument processed by
168             # ChromeMain.  Sharing chrome_exe_main_mac.cc with the
169             # browser app will suffice for now.
170             'app/chrome_exe_main_mac.cc',
171             'app/helper-Info.plist',
172           ],
173           # TODO(mark): Come up with a fancier way to do this.  It should only
174           # be necessary to list helper-Info.plist once, not the three times it
175           # is listed here.
176           'mac_bundle_resources!': [
177             'app/helper-Info.plist',
178           ],
179           # TODO(mark): For now, don't put any resources into this app.  Its
180           # resources directory will be a symbolic link to the browser app's
181           # resources directory.
182           'mac_bundle_resources/': [
183             ['exclude', '.*'],
184           ],
185           'xcode_settings': {
186             'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)',
187             'CHROMIUM_SHORT_NAME': '<(branding)',
188             'CHROMIUM_STRIP_SAVE_FILE': 'app/app.saves',
189             'INFOPLIST_FILE': 'app/helper-Info.plist',
190           },
191           'postbuilds': [
192             {
193               # The helper doesn't have real localizations, it just has
194               # empty .lproj directories, which is enough to convince Cocoa
195               # that anything running out of the helper .app supports those
196               # languages.
197               'postbuild_name': 'Make Empty Localizations',
198               'variables': {
199                 'locale_dirs': [
200                   '>!@(<(apply_locales_cmd) -d ZZLOCALE.lproj <(locales))',
201                 ],
202               },
203               'action': [
204                 'tools/build/mac/make_locale_dirs.sh',
205                 '<@(locale_dirs)',
206               ],
207             },
208             {
209               # The framework (chrome_dll) defines its load-time path
210               # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
211               # (chrome).  A different relative path needs to be used in
212               # helper_app.
213               'postbuild_name': 'Fix Framework Link',
214               'action': [
215                 'install_name_tool',
216                 '-change',
217                 '@executable_path/../Versions/<(version_full)/<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
218                 '@executable_path/../../../<(mac_product_name) Framework.framework/<(mac_product_name) Framework',
219                 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
220               ],
221             },
222             {
223               # Modify the Info.plist as needed.  The script explains why this
224               # is needed.  This is also done in the chrome and chrome_dll
225               # targets.  In this case, --breakpad=0, --keystone=0, and --scm=0
226               # are used because Breakpad, Keystone, and SCM keys are
227               # never placed into the helper.
228               'postbuild_name': 'Tweak Info.plist',
229               'action': ['<(tweak_info_plist_path)',
230                          '--breakpad=0',
231                          '--keystone=0',
232                          '--scm=0'],
233             },
234             {
235               # Make sure there isn't any Objective-C in the helper app's
236               # executable.
237               'postbuild_name': 'Verify No Objective-C',
238               'action': [
239                 '../build/mac/verify_no_objc.sh',
240               ],
241             },
242           ],
243           'conditions': [
244             ['mac_breakpad==1', {
245               'variables': {
246                 # A real .dSYM is needed for dump_syms to operate on.
247                 'mac_real_dsym': 1,
248               },
249               'xcode_settings': {
250                 # With mac_real_dsym set, strip_from_xcode won't be used.
251                 # Specify CHROMIUM_STRIP_SAVE_FILE directly to Xcode.
252                 'STRIPFLAGS': '-s $(CHROMIUM_STRIP_SAVE_FILE)',
253               },
254             }],
255             ['asan==1', {
256               'xcode_settings': {
257                 # Override the outer definition of CHROMIUM_STRIP_SAVE_FILE.
258                 'CHROMIUM_STRIP_SAVE_FILE': 'app/app_asan.saves',
259               },
260             }],
261             ['component=="shared_library"', {
262               'xcode_settings': {
263                 'LD_RUNPATH_SEARCH_PATHS': [
264                   # Get back from Chromium.app/Contents/Versions/V/
265                   #                                    Helper.app/Contents/MacOS
266                   '@loader_path/../../../../../../..',
267                 ],
268               },
269             }],
270           ],
271         },  # target helper_app
272         {
273           # A library containing the actual code for the app mode app, shared
274           # by unit tests.
275           'target_name': 'app_mode_app_support',
276           'type': 'static_library',
277           'variables': { 'enable_wexit_time_destructors': 1, },
278           'product_name': 'app_mode_app_support',
279           'dependencies': [
280             '../base/base.gyp:base',
281             'common_constants.gyp:common_constants',
282           ],
283           'sources': [
284             'common/mac/app_mode_chrome_locator.h',
285             'common/mac/app_mode_chrome_locator.mm',
286             'common/mac/app_mode_common.h',
287             'common/mac/app_mode_common.mm',
288           ],
289           'include_dirs': [
290             '..',
291           ],
292         },  # target app_mode_app_support
293         {
294           # Convenience target to build a disk image.
295           'target_name': 'build_app_dmg',
296           # Don't place this in the 'all' list; most won't want it.
297           # In GYP, booleans are 0/1, not True/False.
298           'suppress_wildcard': 1,
299           'type': 'none',
300           'dependencies': [
301             'chrome',
302           ],
303           'variables': {
304             'build_app_dmg_script_path': 'tools/build/mac/build_app_dmg',
305             'pkg_dmg_script_path': 'installer/mac/pkg-dmg',
307             'conditions': [
308               # This duplicates the output path from build_app_dmg.
309               ['branding=="Chrome"', {
310                 'dmg_name': 'GoogleChrome.dmg',
311               }, { # else: branding!="Chrome"
312                 'dmg_name': 'Chromium.dmg',
313               }],
314             ],
315           },
316           'actions': [
317             {
318               'inputs': [
319                 '<(build_app_dmg_script_path)',
320                 '<(pkg_dmg_script_path)',
321                 '<(PRODUCT_DIR)/<(mac_product_name).app',
322               ],
323               'outputs': [
324                 '<(PRODUCT_DIR)/<(dmg_name)',
325               ],
326               'action_name': 'build_app_dmg',
327               'action': ['<(build_app_dmg_script_path)', '<@(branding)'],
328             },
329           ],  # 'actions'
330         },
331         {
332           'target_name': 'infoplist_strings_tool',
333           'type': 'executable',
334           'variables': { 'enable_wexit_time_destructors': 1, },
335           'dependencies': [
336             'chrome_resources.gyp:chrome_strings',
337             '../base/base.gyp:base',
338             '../ui/base/ui_base.gyp:ui_base',
339             '../ui/gfx/gfx.gyp:gfx',
340             '../ui/gfx/gfx.gyp:gfx_geometry',
341           ],
342           'include_dirs': [
343             '<(grit_out_dir)',
344           ],
345           'sources': [
346             'tools/mac_helpers/infoplist_strings_util.mm',
347           ],
348         },
349       ],  # targets
350     }],  # OS=="mac"
351     ['OS=="linux"',
352       { 'targets': [
353         {
354           'target_name': 'linux_symbols',
355           'type': 'none',
356           'conditions': [
357             ['linux_dump_symbols==1', {
358               'actions': [
359                 {
360                   'action_name': 'dump_symbols',
361                   'inputs': [
362                     '<(DEPTH)/build/linux/dump_app_syms',
363                     '<(PRODUCT_DIR)/dump_syms',
364                     '<(PRODUCT_DIR)/chrome',
365                   ],
366                   'outputs': [
367                     '<(PRODUCT_DIR)/chrome.breakpad.<(target_arch)',
368                   ],
369                   'action': ['<(DEPTH)/build/linux/dump_app_syms',
370                              '<(PRODUCT_DIR)/dump_syms',
371                              '<(linux_strip_binary)',
372                              '<(PRODUCT_DIR)/chrome',
373                              '<@(_outputs)'],
374                   'message': 'Dumping breakpad symbols to <(_outputs)',
375                   'process_outputs_as_sources': 1,
376                 },
377               ],
378               'dependencies': [
379                 'chrome',
380                 '../breakpad/breakpad.gyp:dump_syms',
381               ],
382             }],
383           ],
384         },
385       ],
386     }],  # OS=="linux"
387     ['OS=="win"',
388       { 'targets': [
389         {
390           # For historical reasons, chrome/chrome.sln has been the entry point
391           # for new Chrome developers. To assist development, include several
392           # core unittests that are otherwise only accessible side-by-side with
393           # chrome via all/all.sln.
394           'target_name': 'test_targets',
395           'type': 'none',
396           'dependencies': [
397             '../base/base.gyp:base_unittests',
398             '../content/content_shell_and_tests.gyp:content_browsertests',
399             '../content/content_shell_and_tests.gyp:content_shell',
400             '../content/content_shell_and_tests.gyp:content_unittests',
401             '../net/net.gyp:net_unittests',
402             '../ui/base/ui_base_tests.gyp:ui_base_unittests',
403           ],
404         },
405         {
406           'target_name': 'chrome_version_resources',
407           'type': 'none',
408           'conditions': [
409             ['branding == "Chrome"', {
410               'variables': {
411                  'branding_path': 'app/theme/google_chrome/BRANDING',
412               },
413             }, { # else branding!="Chrome"
414               'variables': {
415                  'branding_path': 'app/theme/chromium/BRANDING',
416               },
417             }],
418           ],
419           'variables': {
420             'output_dir': 'chrome_version',
421             'template_input_path': 'app/chrome_version.rc.version',
422           },
423           'direct_dependent_settings': {
424             'include_dirs': [
425               '<(SHARED_INTERMEDIATE_DIR)/<(output_dir)',
426             ],
427           },
428           'sources': [
429             'app/chrome_exe.ver',
430             'app/chrome_dll.ver',
431             'app/nacl64_exe.ver',
432             'app/other.ver',
433           ],
434           'includes': [
435             'version_resource_rules.gypi',
436           ],
437         },
438         {
439           # GN version: //chrome:version_header
440           'target_name': 'chrome_version_header',
441           'type': 'none',
442           'hard_dependency': 1,
443           'actions': [
444             {
445               'action_name': 'version_header',
446               'variables': {
447                 'lastchange_path':
448                   '<(DEPTH)/build/util/LASTCHANGE',
449               },
450               'conditions': [
451                 ['branding == "Chrome"', {
452                   'variables': {
453                      'branding_path': 'app/theme/google_chrome/BRANDING',
454                   },
455                 }, { # else branding!="Chrome"
456                   'variables': {
457                      'branding_path': 'app/theme/chromium/BRANDING',
458                   },
459                 }],
460               ],
461               'inputs': [
462                 '<(version_path)',
463                 '<(branding_path)',
464                 '<(lastchange_path)',
465                 'version.h.in',
466               ],
467               'outputs': [
468                 '<(SHARED_INTERMEDIATE_DIR)/version.h',
469               ],
470               'action': [
471                 'python',
472                 '<(version_py_path)',
473                 '-f', '<(version_path)',
474                 '-f', '<(branding_path)',
475                 '-f', '<(lastchange_path)',
476                 'version.h.in',
477                 '<@(_outputs)',
478               ],
479               'message': 'Generating version header file: <@(_outputs)',
480             },
481           ],
482         },
483         {
484           'target_name': 'crash_service',
485           'type': 'executable',
486           'dependencies': [
487             'installer_util',
488             '../base/base.gyp:base',
489             '../chrome/common_constants.gyp:common_constants',
490             '../components/components.gyp:breakpad_crash_service',
491           ],
492           'include_dirs': [
493             '..',
494           ],
495           'sources': [
496             'tools/crash_service/main.cc',
497           ],
498           'msvs_settings': {
499             'VCLinkerTool': {
500               'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
501             },
502           },
503         },
504         {
505           'target_name': 'sb_sigutil',
506           'type': 'executable',
507           'dependencies': [
508             '../base/base.gyp:base',
509             'safe_browsing_proto',
510           ],
511           'sources': [
512             'browser/safe_browsing/binary_feature_extractor.h',
513             'browser/safe_browsing/binary_feature_extractor_win.cc',
514             'browser/safe_browsing/pe_image_reader_win.cc',
515             'browser/safe_browsing/pe_image_reader_win.h',
516             'tools/safe_browsing/sb_sigutil.cc',
517           ],
518         },
519       ],  # 'targets'
520       'includes': [
521         'app_shim/app_shim_win.gypi',
522         'chrome_watcher/chrome_watcher.gypi',
523         'chrome_process_finder.gypi',
524         'metro_utils.gypi',
525       ],
526     }],  # OS=="win"
527     ['OS=="win" and target_arch=="ia32"',
528       { 'targets': [
529         {
530           'target_name': 'chrome_user32_delay_imports',
531           'type': 'none',
532           'variables': {
533             'lib_dir': '<(INTERMEDIATE_DIR)',
534           },
535           'sources': [
536               'chrome.user32.delay.imports'
537           ],
538           'includes': [
539               '../build/win/importlibs/create_import_lib.gypi',
540           ],
541           'direct_dependent_settings': {
542             'msvs_settings': {
543               'VCLinkerTool': {
544                 'AdditionalLibraryDirectories': ['<(lib_dir)', ],
545                 'AdditionalDependencies': ['chrome.user32.delay.lib', ],
546               },
547             },
548           },
549         },
550         {
551           'target_name': 'crash_service_win64',
552           'type': 'executable',
553           'product_name': 'crash_service64',
554           'dependencies': [
555             'installer_util_nacl_win64',
556             '../base/base.gyp:base_static_win64',
557             '../chrome/common_constants.gyp:common_constants_win64',
558             '../components/components.gyp:breakpad_crash_service_win64',
559           ],
560           'include_dirs': [
561             '..',
562           ],
563           'sources': [
564             'tools/crash_service/main.cc',
565             '../content/public/common/content_switches.cc',
566           ],
567           'defines': [
568             'COMPILE_CONTENT_STATICALLY',
569           ],
570           'msvs_settings': {
571             'VCLinkerTool': {
572               'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
573             },
574           },
575           'configurations': {
576             'Common_Base': {
577               'msvs_target_platform': 'x64',
578             },
579           },
580         },
581       ]},  # 'targets'
582     ],  # OS=="win" and target_arch=="ia32"
583     ['chromeos==1', {
584       'includes': [ 'chrome_browser_chromeos.gypi' ],
585     }],  # chromeos==1
586     ['OS=="android"',
587       {
588       'targets': [
589         {
590           # GN: //chrome/android:chrome_java
591           'target_name': 'chrome_java',
592           'type': 'none',
593           'dependencies': [
594             'activity_type_ids_java',
595             'app_banner_metrics_ids_java',
596             'chrome_resources.gyp:chrome_strings',
597             'chrome_strings_grd',
598             'chrome_version_java',
599             'profile_account_management_metrics_java',
600             'content_setting_java',
601             'content_settings_type_java',
602             'page_info_connection_type_java',
603             'profile_sync_service_model_type_selection_java',
604             'resource_id_java',
605             'toolbar_model_security_levels_java',
606             'tab_load_status_java',
607             '../base/base.gyp:base',
608             '../components/components.gyp:bookmarks_java',
609             '../components/components.gyp:dom_distiller_core_java',
610             '../components/components.gyp:gcm_driver_java',
611             '../components/components.gyp:invalidation_java',
612             '../components/components.gyp:navigation_interception_java',
613             '../components/components.gyp:variations_java',
614             '../components/components.gyp:web_contents_delegate_android_java',
615             '../content/content.gyp:content_java',
616             '../printing/printing.gyp:printing_java',
617             '../sync/sync.gyp:sync_java',
618             '../third_party/android_tools/android_tools.gyp:android_support_v7_appcompat_javalib',
619             '../third_party/android_tools/android_tools.gyp:android_support_v13_javalib',
620             '../third_party/libaddressinput/libaddressinput.gyp:android_addressinput_widget',
621             '../ui/android/ui_android.gyp:ui_java',
622           ],
623           'variables': {
624             'java_in_dir': '../chrome/android/java',
625             'has_java_resources': 1,
626             'R_package': 'org.chromium.chrome',
627             'R_package_relpath': 'org/chromium/chrome',
628             # Include xml string files generated from generated_resources.grd
629             'res_extra_dirs': ['<(SHARED_INTERMEDIATE_DIR)/chrome/java/res'],
630             'res_extra_files': ['<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(SHARED_INTERMEDIATE_DIR)/chrome" app/generated_resources.grd)'],
631           },
632           'includes': [
633             '../build/java.gypi',
634           ],
635         },
636         {
637           # GN: //chrome/android:chrome_strings_grd
638           'target_name': 'chrome_strings_grd',
639           'type': 'none',
640           'variables': {
641             'grd_file': '../chrome/android/java/strings/android_chrome_strings.grd',
642           },
643           'includes': [
644             '../build/java_strings_grd.gypi',
645           ],
646         },
647         {
648           # GN: //chrome:content_setting_javagen
649           'target_name': 'content_setting_java',
650           'type': 'none',
651           'variables': {
652             'source_file': '../components/content_settings/core/common/content_settings.h',
653           },
654           'includes': [ '../build/android/java_cpp_enum.gypi' ],
655         },
656         {
657           # GN: //chrome:content_settings_type_javagen
658           'target_name': 'content_settings_type_java',
659           'type': 'none',
660           'variables': {
661             'source_file': '../components/content_settings/core/common/content_settings_types.h',
662           },
663           'includes': [ '../build/android/java_cpp_enum.gypi' ],
664         },
665         {
666           # GN: //chrome:page_info_connection_type_javagen
667           'target_name': 'page_info_connection_type_java',
668           'type': 'none',
669           'variables': {
670             'source_file': 'browser/ui/android/website_settings_popup_android.h',
671           },
672           'includes': [ '../build/android/java_cpp_enum.gypi' ],
673         },
674       ], # 'targets'
675       'includes': [
676         'chrome_android.gypi',
677       ]}, # 'includes'
678     ],  # OS=="android"
679     ['configuration_policy==1 and OS!="android" and OS!="ios"', {
680       'includes': [ 'policy.gypi', ],
681     }],
682     ['enable_extensions==1', {
683       'includes': [
684         'chrome_browser_extensions.gypi',
685       ],
686     }],
687     ['enable_print_preview==1', {
688       'targets': [
689         {
690           # GN version: //chrome/service
691           'target_name': 'service',
692           'type': 'static_library',
693           'variables': { 'enable_wexit_time_destructors': 1, },
694           'dependencies': [
695             'chrome_resources.gyp:chrome_strings',
696             'common',
697             'common_net',
698             '../base/base.gyp:base',
699             '../components/components.gyp:cloud_devices_common',
700             '../google_apis/google_apis.gyp:google_apis',
701             '../jingle/jingle.gyp:notifier',
702             '../net/net.gyp:net',
703             '../printing/printing.gyp:printing',
704             '../skia/skia.gyp:skia',
705             '../third_party/libjingle/libjingle.gyp:libjingle',
706           ],
707           'sources': [
708             # Note: sources list duplicated in GN build.
709             'service/cloud_print/cdd_conversion_win.cc',
710             'service/cloud_print/cdd_conversion_win.h',
711             'service/cloud_print/cloud_print_auth.cc',
712             'service/cloud_print/cloud_print_auth.h',
713             'service/cloud_print/cloud_print_connector.cc',
714             'service/cloud_print/cloud_print_connector.h',
715             'service/cloud_print/cloud_print_proxy.cc',
716             'service/cloud_print/cloud_print_proxy.h',
717             'service/cloud_print/cloud_print_proxy_backend.cc',
718             'service/cloud_print/cloud_print_proxy_backend.h',
719             'service/cloud_print/cloud_print_service_helpers.cc',
720             'service/cloud_print/cloud_print_service_helpers.h',
721             'service/cloud_print/cloud_print_token_store.cc',
722             'service/cloud_print/cloud_print_token_store.h',
723             'service/cloud_print/cloud_print_url_fetcher.cc',
724             'service/cloud_print/cloud_print_url_fetcher.h',
725             'service/cloud_print/cloud_print_wipeout.cc',
726             'service/cloud_print/cloud_print_wipeout.h',
727             'service/cloud_print/connector_settings.cc',
728             'service/cloud_print/connector_settings.h',
729             'service/cloud_print/job_status_updater.cc',
730             'service/cloud_print/job_status_updater.h',
731             'service/cloud_print/print_system.cc',
732             'service/cloud_print/print_system.h',
733             'service/cloud_print/print_system_win.cc',
734             'service/cloud_print/printer_job_handler.cc',
735             'service/cloud_print/printer_job_handler.h',
736             'service/cloud_print/printer_job_queue_handler.cc',
737             'service/cloud_print/printer_job_queue_handler.h',
738             'service/net/service_url_request_context_getter.cc',
739             'service/net/service_url_request_context_getter.h',
740             'service/service_ipc_server.cc',
741             'service/service_ipc_server.h',
742             'service/service_main.cc',
743             'service/service_process.cc',
744             'service/service_process.h',
745             'service/service_process_prefs.cc',
746             'service/service_process_prefs.h',
747             'service/service_utility_process_host.cc',
748             'service/service_utility_process_host.h',
749           ],
750           'include_dirs': [
751             '..',
752           ],
753           'conditions': [
754             ['use_cups==1', {
755               'dependencies': [
756                 '../printing/printing.gyp:cups',
757               ],
758               'sources': [
759                 'service/cloud_print/print_system_cups.cc',
760               ],
761             }],
762             ['OS!="win" and use_cups!=1', {
763               'sources': [
764                 'service/cloud_print/print_system_dummy.cc',
765               ],
766             }],
767             ['OS!="win"', {
768               'sources!': [
769                 'service/service_utility_process_host.cc',
770                 'service/service_utility_process_host.h',
771               ],
772             }],
773           ],
774         },
775       ],
776     }],
777   ],  # 'conditions'