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