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