Retry downloading rules for libaddressinput.
[chromium-blink-merge.git] / chrome / chrome_installer.gypi
blobee3754b2c8e752b3baf03fe027ce88d72aa32ff7
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.
6   'variables': {
7     'lastchange_path': '../build/util/LASTCHANGE',
8     'libpeer_target_type%': 'static_library',
9     # 'branding_dir' is set in the 'conditions' section at the bottom.
10   },
11   'conditions': [
12     ['OS=="win"', {
13       'targets': [
14         {
15           'target_name': 'gcapi_dll',
16           'type': 'loadable_module',
17           'dependencies': [
18             'gcapi_lib',
19           ],
20           'include_dirs': [
21             '..',
22           ],
23           'sources': [
24             'installer/gcapi/gcapi.def',
25             'installer/gcapi/gcapi_dll.cc',
26           ],
27         },
28         {
29           'target_name': 'gcapi_lib',
30           'type': 'static_library',
31           'dependencies': [
32             'installer_util',
33             '../base/base.gyp:base',
34             '../chrome/chrome.gyp:launcher_support',
35             '../google_update/google_update.gyp:google_update',
36           ],
37           'include_dirs': [
38             '..',
39           ],
40           'sources': [
41             'installer/gcapi/gcapi.cc',
42             'installer/gcapi/gcapi.h',
43             'installer/gcapi/gcapi_omaha_experiment.cc',
44             'installer/gcapi/gcapi_omaha_experiment.h',
45             'installer/gcapi/gcapi_reactivation.cc',
46             'installer/gcapi/gcapi_reactivation.h',
47           ],
48           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
49           'msvs_disabled_warnings': [ 4267, ],
50         },
51         {
52           'target_name': 'gcapi_test',
53           'type': 'executable',
54           'dependencies': [
55             'common',
56             'gcapi_dll',
57             'gcapi_lib',
58             'installer_util',
59             '../base/base.gyp:base',
60             '../base/base.gyp:test_support_base',
61             '../testing/gtest.gyp:gtest',
62           ],
63           'include_dirs': [
64             '..',
65           ],
66           'sources': [
67             'installer/gcapi/gcapi_last_run_test.cc',
68             'installer/gcapi/gcapi_omaha_experiment_test.cc',
69             'installer/gcapi/gcapi_reactivation_test.cc',
70             'installer/gcapi/gcapi_test_registry_overrider.cc',
71             'installer/gcapi/gcapi_test_registry_overrider.h',
72             'installer/gcapi/gcapi_test.cc',
73             'installer/gcapi/gcapi_test.rc',
74             'installer/gcapi/resource.h',
75           ],
76         },
77         {
78           'target_name': 'installer_util_unittests',
79           'type': 'executable',
80           'dependencies': [
81             'installer_util',
82             'installer_util_strings',
83             'installer/upgrade_test.gyp:alternate_version_generator_lib',
84             '../base/base.gyp:base',
85             '../base/base.gyp:base_i18n',
86             '../base/base.gyp:test_support_base',
87             '../chrome/chrome.gyp:chrome_version_resources',
88             '../content/content.gyp:content_common',
89             '../testing/gmock.gyp:gmock',
90             '../testing/gtest.gyp:gtest',
91           ],
92           'include_dirs': [
93             '..',
94           ],
95           'sources': [
96             'installer/setup/compat_checks_unittest.cc',
97             'installer/setup/setup_constants.cc',
98             'installer/util/advanced_firewall_manager_win_unittest.cc',
99             'installer/util/callback_work_item_unittest.cc',
100             'installer/util/channel_info_unittest.cc',
101             'installer/util/copy_tree_work_item_unittest.cc',
102             'installer/util/create_dir_work_item_unittest.cc',
103             'installer/util/create_reg_key_work_item_unittest.cc',
104             'installer/util/delete_after_reboot_helper_unittest.cc',
105             'installer/util/delete_reg_key_work_item_unittest.cc',
106             'installer/util/delete_reg_value_work_item_unittest.cc',
107             'installer/util/delete_tree_work_item_unittest.cc',
108             'installer/util/duplicate_tree_detector_unittest.cc',
109             'installer/util/fake_installation_state.h',
110             'installer/util/fake_product_state.h',
111             'installer/util/google_update_settings_unittest.cc',
112             'installer/util/install_util_unittest.cc',
113             'installer/util/installation_validation_helper.cc',
114             'installer/util/installation_validation_helper.h',
115             'installer/util/installation_validator_unittest.cc',
116             'installer/util/installer_state_unittest.cc',
117             'installer/util/installer_util_test_common.cc',
118             'installer/util/installer_util_test_common.h',
119             'installer/util/installer_util_unittests.rc',
120             'installer/util/installer_util_unittests_resource.h',
121             'installer/util/language_selector_unittest.cc',
122             'installer/util/legacy_firewall_manager_win_unittest.cc',
123             'installer/util/logging_installer_unittest.cc',
124             'installer/util/lzma_util_unittest.cc',
125             'installer/util/master_preferences_unittest.cc',
126             'installer/util/move_tree_work_item_unittest.cc',
127             'installer/util/product_state_unittest.cc',
128             'installer/util/product_unittest.cc',
129             'installer/util/product_unittest.h',
130             'installer/util/registry_key_backup_unittest.cc',
131             'installer/util/registry_test_data.cc',
132             'installer/util/registry_test_data.h',
133             'installer/util/run_all_unittests.cc',
134             'installer/util/self_cleaning_temp_dir_unittest.cc',
135             'installer/util/set_reg_value_work_item_unittest.cc',
136             'installer/util/shell_util_unittest.cc',
137             'installer/util/uninstall_metrics_unittest.cc',
138             'installer/util/wmi_unittest.cc',
139             'installer/util/work_item_list_unittest.cc',
140             '<(SHARED_INTERMEDIATE_DIR)/chrome_version/other_version.rc',
141           ],
142           'msvs_settings': {
143             'VCManifestTool': {
144               'AdditionalManifestFiles': [
145                 '$(ProjectDir)\\installer\\mini_installer\\mini_installer.exe.manifest',
146               ],
147             },
148           },
149           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
150           'msvs_disabled_warnings': [ 4267, ],
151         },
152         {
153           'target_name': 'installer_util_strings',
154           'type': 'none',
155           'actions': [
156             {
157               'action_name': 'installer_util_strings',
158               'variables': {
159                 'create_string_rc_py': 'installer/util/prebuild/create_string_rc.py',
160               },
161               'conditions': [
162                 ['branding=="Chrome"', {
163                   'variables': {
164                     'brand_strings': 'google_chrome_strings',
165                   },
166                 }, {
167                   'variables': {
168                     'brand_strings': 'chromium_strings',
169                   },
170                 }],
171               ],
172               'inputs': [
173                 '<(create_string_rc_py)',
174                 'app/<(brand_strings).grd',
175               ],
176               'outputs': [
177                 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.h',
178                 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc',
179               ],
180               'action': ['python',
181                          '<(create_string_rc_py)',
182                          '-i', 'app/<(brand_strings).grd:resources',
183                          '-n', 'installer_util_strings',
184                          '-o', '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings',],
185               'message': 'Generating installer_util_strings',
186             },
187           ],
188           'direct_dependent_settings': {
189             'include_dirs': [
190               '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings',
191             ],
192           },
193         },
194         {
195           'target_name': 'launcher_support',
196           'type': 'static_library',
197           'include_dirs': [
198             '..',
199           ],
200           'direct_dependent_settings': {
201             'include_dirs': [
202               '..',
203             ],
204           },
205           'dependencies': [
206             '<(DEPTH)/base/base.gyp:base',
207           ],
208           'sources': [
209             'installer/launcher_support/chrome_launcher_support.cc',
210             'installer/launcher_support/chrome_launcher_support.h',
211           ],
212         },
213         {
214           'target_name': 'setup',
215           'type': 'executable',
216           'dependencies': [
217             'installer_util',
218             'installer_util_strings',
219             'launcher_support',
220             '../base/base.gyp:base',
221             '../breakpad/breakpad.gyp:breakpad_handler',
222             '../chrome/common_constants.gyp:common_constants',
223             '../chrome_elf/chrome_elf.gyp:chrome_elf_constants',
224             '../rlz/rlz.gyp:rlz_lib',
225             '../third_party/zlib/zlib.gyp:zlib',
226           ],
227           'include_dirs': [
228             '..',
229             '<(INTERMEDIATE_DIR)',
230             '<(SHARED_INTERMEDIATE_DIR)/setup',
231           ],
232           'direct_dependent_settings': {
233             'include_dirs': [
234               '<(SHARED_INTERMEDIATE_DIR)/setup',
235             ],
236           },
237           'sources': [
238             '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc',
239             'installer/mini_installer/chrome.release',
240             'installer/setup/archive_patch_helper.cc',
241             'installer/setup/archive_patch_helper.h',
242             'installer/setup/install.cc',
243             'installer/setup/install.h',
244             'installer/setup/install_worker.cc',
245             'installer/setup/install_worker.h',
246             'installer/setup/setup_main.cc',
247             'installer/setup/setup_main.h',
248             'installer/setup/setup.ico',
249             'installer/setup/setup.rc',
250             'installer/setup/setup_constants.cc',
251             'installer/setup/setup_constants.h',
252             'installer/setup/setup_exe_version.rc.version',
253             'installer/setup/setup_resource.h',
254             'installer/setup/setup_util.cc',
255             'installer/setup/setup_util.h',
256             'installer/setup/uninstall.cc',
257             'installer/setup/uninstall.h',
258           ],
259           'msvs_settings': {
260             'VCLinkerTool': {
261               'SubSystem': '2',     # Set /SUBSYSTEM:WINDOWS
262             },
263             'VCManifestTool': {
264               'AdditionalManifestFiles': [
265                 '$(ProjectDir)\\installer\\setup\\setup.exe.manifest',
266               ],
267             },
268           },
269           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
270           'msvs_disabled_warnings': [ 4267, ],
271           'rules': [
272             {
273               'rule_name': 'setup_version',
274               'extension': 'version',
275               'variables': {
276                 'version_py_path': '<(DEPTH)/build/util/version.py',
277                 'template_input_path': 'installer/setup/setup_exe_version.rc.version',
278               },
279               'inputs': [
280                 '<(template_input_path)',
281                 '<(version_path)',
282                 '<(lastchange_path)',
283                 '<(branding_dir)/BRANDING',
284               ],
285               'outputs': [
286                 '<(SHARED_INTERMEDIATE_DIR)/setup/setup_exe_version.rc',
287               ],
288               'action': [
289                 'python', '<(version_py_path)',
290                 '-f', '<(version_path)',
291                 '-f', '<(lastchange_path)',
292                 '-f', '<(branding_dir)/BRANDING',
293                 '<(template_input_path)',
294                 '<@(_outputs)',
295               ],
296               'process_outputs_as_sources': 1,
297               'message': 'Generating version information'
298             },
299           ],
300           'conditions': [
301             # TODO(mark):  <(branding_dir) should be defined by the
302             # global condition block at the bottom of the file, but
303             # this doesn't work due to the following issue:
304             #
305             #   http://code.google.com/p/gyp/issues/detail?id=22
306             #
307             # Remove this block once the above issue is fixed.
308             [ 'branding == "Chrome"', {
309               'variables': {
310                  'branding_dir': 'app/theme/google_chrome',
311                  'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
312               },
313             }, { # else branding!="Chrome"
314               'variables': {
315                  'branding_dir': 'app/theme/chromium',
316                  'branding_dir_100': 'app/theme/default_100_percent/chromium',
317               },
318             }],
319             ['target_arch=="ia32"', {
320               'msvs_settings': {
321                 'VCCLCompilerTool': {
322                   'EnableEnhancedInstructionSet': '4',  # NoExtensions
323                 },
324               },
325             }],
326           ],
327         },
328         {
329           'target_name': 'setup_unittests',
330           'type': 'executable',
331           'dependencies': [
332             'installer_util',
333             'installer_util_strings',
334             'launcher_support',
335             '../base/base.gyp:base',
336             '../base/base.gyp:base_i18n',
337             '../base/base.gyp:test_support_base',
338             '../testing/gmock.gyp:gmock',
339             '../testing/gtest.gyp:gtest',
340           ],
341           'include_dirs': [
342             '..',
343             '<(INTERMEDIATE_DIR)',
344           ],
345           # TODO(robertshield): Move the items marked with "Move to lib"
346           # below into a separate lib and then link both setup.exe and
347           # setup_unittests.exe against that.
348           'sources': [
349             'installer/mini_installer/chrome.release',  # Move to lib
350             'installer/mini_installer/appid.h',
351             'installer/mini_installer/chrome_appid.cc',
352             'installer/mini_installer/configuration.cc',
353             'installer/mini_installer/configuration.h',
354             'installer/mini_installer/configuration_test.cc',
355             'installer/mini_installer/decompress.cc',
356             'installer/mini_installer/decompress.h',
357             'installer/mini_installer/decompress_test.cc',
358             'installer/mini_installer/mini_string.cc',
359             'installer/mini_installer/mini_string.h',
360             'installer/mini_installer/mini_string_test.cc',
361             'installer/setup/archive_patch_helper.cc',  # Move to lib
362             'installer/setup/archive_patch_helper.h',   # Move to lib
363             'installer/setup/archive_patch_helper_unittest.cc',
364             'installer/setup/install.cc',               # Move to lib
365             'installer/setup/install.h',                # Move to lib
366             'installer/setup/install_unittest.cc',
367             'installer/setup/install_worker.cc',        # Move to lib
368             'installer/setup/install_worker.h',         # Move to lib
369             'installer/setup/install_worker_unittest.cc',
370             'installer/setup/run_all_unittests.cc',
371             'installer/setup/setup_constants.cc',       # Move to lib
372             'installer/setup/setup_constants.h',        # Move to lib
373             'installer/setup/setup_unittests.rc',
374             'installer/setup/setup_unittests_resource.h',
375             'installer/setup/setup_util.cc',
376             'installer/setup/setup_util_unittest.cc',
377             'installer/setup/setup_util_unittest.h',
378           ],
379           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
380           'msvs_disabled_warnings': [ 4267, ],
381         },
382       ],
383     }],
384     ['OS=="win" and target_arch=="ia32"', {
385       'targets': [
386         {
387           'target_name': 'launcher_support64',
388           'type': 'static_library',
389           'include_dirs': [
390             '..',
391           ],
392           'direct_dependent_settings': {
393             'include_dirs': [
394               '..',
395             ],
396           },
397           'defines': [
398               '<@(nacl_win64_defines)',
399           ],
400               'dependencies': [
401               '<(DEPTH)/base/base.gyp:base_win64',
402           ],
403           'configurations': {
404             'Common_Base': {
405               'msvs_target_platform': 'x64',
406             },
407           },
408           'sources': [
409             'installer/launcher_support/chrome_launcher_support.cc',
410             'installer/launcher_support/chrome_launcher_support.h',
411           ],
412         },
413       ],
414     }],
415     ['OS=="linux" and branding=="Chrome"', {
416       'variables': {
417         # Always google_chrome since this only applies to branding==Chrome.
418         'branding_dir': 'app/theme/google_chrome',
419         'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
420         'version' : '<!(python <(version_py_path) -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
421         'revision' : '<!(python ../build/util/lastchange.py --revision-only)',
422         'packaging_files_common': [
423           'installer/linux/common/apt.include',
424           'installer/linux/common/default-app.template',
425           'installer/linux/common/default-app-block.template',
426           'installer/linux/common/desktop.template',
427           'installer/linux/common/google-chrome/google-chrome.info',
428           'installer/linux/common/installer.include',
429           'installer/linux/common/postinst.include',
430           'installer/linux/common/prerm.include',
431           'installer/linux/common/repo.cron',
432           'installer/linux/common/rpm.include',
433           'installer/linux/common/rpmrepo.cron',
434           'installer/linux/common/symlinks.include',
435           'installer/linux/common/variables.include',
436           'installer/linux/common/wrapper',
437         ],
438         'packaging_files_deb': [
439           'installer/linux/debian/build.sh',
440           'installer/linux/debian/changelog.template',
441           'installer/linux/debian/control.template',
442           'installer/linux/debian/debian.menu',
443           'installer/linux/debian/expected_deps_ia32',
444           'installer/linux/debian/expected_deps_x64',
445           'installer/linux/debian/postinst',
446           'installer/linux/debian/postrm',
447           'installer/linux/debian/prerm',
448         ],
449         'packaging_files_rpm': [
450           'installer/linux/rpm/build.sh',
451           'installer/linux/rpm/chrome.spec.template',
452           'installer/linux/rpm/expected_deps_i386',
453           'installer/linux/rpm/expected_deps_x86_64',
454         ],
455         'packaging_files_binaries': [
456           # TODO(mmoss) Any convenient way to get all the relevant build
457           # files? (e.g. all locales, resources, etc.)
458           '<(PRODUCT_DIR)/chrome',
459           '<(PRODUCT_DIR)/chrome_sandbox',
460           '<(PRODUCT_DIR)/libffmpegsumo.so',
461           '<(PRODUCT_DIR)/libpdf.so',
462           '<(PRODUCT_DIR)/libppGoogleNaClPluginChrome.so',
463           '<(PRODUCT_DIR)/xdg-mime',
464           '<(PRODUCT_DIR)/xdg-settings',
465           '<(PRODUCT_DIR)/locales/en-US.pak',
466           '<(PRODUCT_DIR)/nacl_helper',
467           '<(PRODUCT_DIR)/nacl_helper_bootstrap',
468           '<(PRODUCT_DIR)/PepperFlash/libpepflashplayer.so',
469           '<(PRODUCT_DIR)/PepperFlash/manifest.json',
470           '<@(default_apps_list_linux_dest)',
471         ],
472         'flock_bash': ['flock', '--', '/tmp/linux_package_lock', 'bash'],
473         'deb_build': '<(PRODUCT_DIR)/installer/debian/build.sh',
474         'rpm_build': '<(PRODUCT_DIR)/installer/rpm/build.sh',
475         'deb_cmd': ['<@(flock_bash)', '<(deb_build)', '-o' '<(PRODUCT_DIR)',
476                     '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
477         'rpm_cmd': ['<@(flock_bash)', '<(rpm_build)', '-o' '<(PRODUCT_DIR)',
478                     '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
479         'conditions': [
480           ['target_arch=="ia32"', {
481             'deb_arch': 'i386',
482             'rpm_arch': 'i386',
483             'packaging_files_binaries': [
484               '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
485               '<(PRODUCT_DIR)/libwidevinecdmadapter.so',
486               '<(PRODUCT_DIR)/libwidevinecdm.so',
487             ],
488             'packaging_files_common': [
489               '<(DEPTH)/build/linux/bin/eu-strip',
490             ],
491           }],
492           ['target_arch=="x64"', {
493             'deb_arch': 'amd64',
494             'rpm_arch': 'x86_64',
495             'packaging_files_binaries': [
496               '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
497               '<(PRODUCT_DIR)/libwidevinecdmadapter.so',
498               '<(PRODUCT_DIR)/libwidevinecdm.so',
499             ],
500             'packaging_files_common': [
501               '<!(which eu-strip)',
502             ],
503           }],
504           ['target_arch=="arm"', {
505             'deb_arch': 'arm',
506             'rpm_arch': 'arm',
507           }],
508           ['libpeer_target_type!="static_library"', {
509             'packaging_files_binaries': [
510               '<(PRODUCT_DIR)/lib/libpeerconnection.so',
511             ],
512           }],
513         ],
514       },
515       'targets': [
516         {
517           'target_name': 'linux_installer_configs',
518           'type': 'none',
519           # Add these files to the build output so the build archives will be
520           # "hermetic" for packaging. This is only for branding="Chrome" since
521           # we only create packages for official builds.
522           'copies': [
523             {
524               'destination': '<(PRODUCT_DIR)/installer/debian/',
525               'files': [
526                 '<@(packaging_files_deb)',
527               ]
528             },
529             {
530               'destination': '<(PRODUCT_DIR)/installer/rpm/',
531               'files': [
532                 '<@(packaging_files_rpm)',
533               ]
534             },
535             {
536               'destination': '<(PRODUCT_DIR)/installer/common/',
537               'files': [
538                 '<@(packaging_files_common)',
539               ]
540             },
541             # Additional theme resources needed for package building.
542             {
543               'destination': '<(PRODUCT_DIR)/installer/theme/',
544               'files': [
545                 '<(branding_dir_100)/product_logo_16.png',
546                 '<(branding_dir)/product_logo_22.png',
547                 '<(branding_dir)/product_logo_24.png',
548                 '<(branding_dir_100)/product_logo_32.png',
549                 '<(branding_dir)/product_logo_48.png',
550                 '<(branding_dir)/product_logo_64.png',
551                 '<(branding_dir)/product_logo_128.png',
552                 '<(branding_dir)/product_logo_256.png',
553                 '<(branding_dir)/product_logo_32.xpm',
554                 '<(branding_dir)/BRANDING',
555               ],
556             },
557           ],
558           'actions': [
559             {
560               'action_name': 'save_build_info',
561               'inputs': [
562                 '<(branding_dir)/BRANDING',
563                 '<(version_path)',
564                 '<(lastchange_path)',
565               ],
566               'outputs': [
567                 '<(PRODUCT_DIR)/installer/version.txt',
568               ],
569               # Just output the default version info variables.
570               'action': [
571                 'python', '<(version_py_path)',
572                 '-f', '<(branding_dir)/BRANDING',
573                 '-f', '<(version_path)',
574                 '-f', '<(lastchange_path)',
575                 '-o', '<@(_outputs)'
576               ],
577             },
578           ],
579         },
580         {
581           'target_name': 'linux_packages_all',
582           'suppress_wildcard': 1,
583           'type': 'none',
584           'dependencies': [
585             'linux_packages_unstable',
586             'linux_packages_beta',
587             'linux_packages_stable',
588           ],
589         },
590         {
591           # 'asan' is a developer, testing-only package, so it shouldn't be
592           # included in the 'linux_packages_all' collection.
593           'target_name': 'linux_packages_asan',
594           'suppress_wildcard': 1,
595           'type': 'none',
596           'dependencies': [
597             'linux_packages_asan_deb',
598           ],
599           # ChromeOS doesn't care about RPM packages.
600           'conditions': [
601             ['chromeos==0', {
602               'dependencies': [
603                 'linux_packages_asan_rpm',
604               ],
605             }],
606           ],
607         },
608         {
609           # 'trunk' is a developer, testing-only package, so it shouldn't be
610           # included in the 'linux_packages_all' collection.
611           'target_name': 'linux_packages_trunk',
612           'suppress_wildcard': 1,
613           'type': 'none',
614           'dependencies': [
615             'linux_packages_trunk_deb',
616           ],
617           # ChromeOS doesn't care about RPM packages.
618           'conditions': [
619             ['chromeos==0', {
620               'dependencies': [
621                 'linux_packages_trunk_rpm',
622               ],
623             }],
624           ],
625         },
626         {
627           'target_name': 'linux_packages_unstable',
628           'suppress_wildcard': 1,
629           'type': 'none',
630           'dependencies': [
631             'linux_packages_unstable_deb',
632           ],
633           # ChromeOS doesn't care about RPM packages.
634           'conditions': [
635             ['chromeos==0', {
636               'dependencies': [
637                 'linux_packages_unstable_rpm',
638               ],
639             }],
640           ],
641         },
642         {
643           'target_name': 'linux_packages_beta',
644           'suppress_wildcard': 1,
645           'type': 'none',
646           'dependencies': [
647             'linux_packages_beta_deb',
648           ],
649           # ChromeOS doesn't care about RPM packages.
650           'conditions': [
651             ['chromeos==0', {
652               'dependencies': [
653                 'linux_packages_beta_rpm',
654               ],
655             }],
656           ],
657         },
658         {
659           'target_name': 'linux_packages_stable',
660           'suppress_wildcard': 1,
661           'type': 'none',
662           'dependencies': [
663             'linux_packages_stable_deb',
664           ],
665           # ChromeOS doesn't care about RPM packages.
666           'conditions': [
667             ['chromeos==0', {
668               'dependencies': [
669                 'linux_packages_stable_rpm',
670               ],
671             }],
672           ],
673         },
674         # TODO(mmoss) gyp looping construct would be handy here ...
675         # These package actions are the same except for the 'channel' variable.
676         {
677           'target_name': 'linux_packages_asan_deb',
678           'suppress_wildcard': 1,
679           'type': 'none',
680           'dependencies': [
681             'chrome',
682             'linux_installer_configs',
683           ],
684           'actions': [
685             {
686               'variables': {
687                 'channel': 'asan',
688               },
689               'action_name': 'deb_packages_<(channel)',
690               'process_outputs_as_sources': 1,
691               'inputs': [
692                 '<(deb_build)',
693                 '<@(packaging_files_binaries)',
694                 '<@(packaging_files_common)',
695                 '<@(packaging_files_deb)',
696               ],
697               'outputs': [
698                 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
699               ],
700               'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
701             },
702           ],
703         },
704         {
705           'target_name': 'linux_packages_trunk_deb',
706           'suppress_wildcard': 1,
707           'type': 'none',
708           'dependencies': [
709             'chrome',
710             'linux_installer_configs',
711           ],
712           'actions': [
713             {
714               'variables': {
715                 'channel': 'trunk',
716               },
717               'action_name': 'deb_packages_<(channel)',
718               'process_outputs_as_sources': 1,
719               'inputs': [
720                 '<(deb_build)',
721                 '<@(packaging_files_binaries)',
722                 '<@(packaging_files_common)',
723                 '<@(packaging_files_deb)',
724               ],
725               'outputs': [
726                 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
727               ],
728               'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
729             },
730           ],
731         },
732         {
733           'target_name': 'linux_packages_unstable_deb',
734           'suppress_wildcard': 1,
735           'type': 'none',
736           'dependencies': [
737             'chrome',
738             'linux_installer_configs',
739           ],
740           'actions': [
741             {
742               'variables': {
743                 'channel': 'unstable',
744               },
745               'action_name': 'deb_packages_<(channel)',
746               'process_outputs_as_sources': 1,
747               'inputs': [
748                 '<(deb_build)',
749                 '<@(packaging_files_binaries)',
750                 '<@(packaging_files_common)',
751                 '<@(packaging_files_deb)',
752               ],
753               'outputs': [
754                 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
755               ],
756               'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
757             },
758           ],
759         },
760         {
761           'target_name': 'linux_packages_beta_deb',
762           'suppress_wildcard': 1,
763           'type': 'none',
764           'dependencies': [
765             'chrome',
766             'linux_installer_configs',
767           ],
768           'actions': [
769             {
770               'variables': {
771                 'channel': 'beta',
772               },
773               'action_name': 'deb_packages_<(channel)',
774               'process_outputs_as_sources': 1,
775               'inputs': [
776                 '<(deb_build)',
777                 '<@(packaging_files_binaries)',
778                 '<@(packaging_files_common)',
779                 '<@(packaging_files_deb)',
780               ],
781               'outputs': [
782                 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
783               ],
784               'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
785             },
786           ],
787         },
788         {
789           'target_name': 'linux_packages_stable_deb',
790           'suppress_wildcard': 1,
791           'type': 'none',
792           'dependencies': [
793             'chrome',
794             'linux_installer_configs',
795           ],
796           'actions': [
797             {
798               'variables': {
799                 'channel': 'stable',
800               },
801               'action_name': 'deb_packages_<(channel)',
802               'process_outputs_as_sources': 1,
803               'inputs': [
804                 '<(deb_build)',
805                 '<@(packaging_files_binaries)',
806                 '<@(packaging_files_common)',
807                 '<@(packaging_files_deb)',
808               ],
809               'outputs': [
810                 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
811               ],
812               'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
813             },
814           ],
815         },
816         {
817           'target_name': 'linux_packages_asan_rpm',
818           'suppress_wildcard': 1,
819           'type': 'none',
820           'dependencies': [
821             'chrome',
822             'linux_installer_configs',
823           ],
824           'actions': [
825             {
826               'variables': {
827                 'channel': 'asan',
828               },
829               'action_name': 'rpm_packages_<(channel)',
830               'process_outputs_as_sources': 1,
831               'inputs': [
832                 '<(rpm_build)',
833                 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
834                 '<@(packaging_files_binaries)',
835                 '<@(packaging_files_common)',
836                 '<@(packaging_files_rpm)',
837               ],
838               'outputs': [
839                 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
840               ],
841               'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
842             },
843           ],
844         },
845         {
846           'target_name': 'linux_packages_trunk_rpm',
847           'suppress_wildcard': 1,
848           'type': 'none',
849           'dependencies': [
850             'chrome',
851             'linux_installer_configs',
852           ],
853           'actions': [
854             {
855               'variables': {
856                 'channel': 'trunk',
857               },
858               'action_name': 'rpm_packages_<(channel)',
859               'process_outputs_as_sources': 1,
860               'inputs': [
861                 '<(rpm_build)',
862                 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
863                 '<@(packaging_files_binaries)',
864                 '<@(packaging_files_common)',
865                 '<@(packaging_files_rpm)',
866               ],
867               'outputs': [
868                 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
869               ],
870               'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
871             },
872           ],
873         },
874         {
875           'target_name': 'linux_packages_unstable_rpm',
876           'suppress_wildcard': 1,
877           'type': 'none',
878           'dependencies': [
879             'chrome',
880             'linux_installer_configs',
881           ],
882           'actions': [
883             {
884               'variables': {
885                 'channel': 'unstable',
886               },
887               'action_name': 'rpm_packages_<(channel)',
888               'process_outputs_as_sources': 1,
889               'inputs': [
890                 '<(rpm_build)',
891                 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
892                 '<@(packaging_files_binaries)',
893                 '<@(packaging_files_common)',
894                 '<@(packaging_files_rpm)',
895               ],
896               'outputs': [
897                 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
898               ],
899               'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
900             },
901           ],
902         },
903         {
904           'target_name': 'linux_packages_beta_rpm',
905           'suppress_wildcard': 1,
906           'type': 'none',
907           'dependencies': [
908             'chrome',
909             'linux_installer_configs',
910           ],
911           'actions': [
912             {
913               'variables': {
914                 'channel': 'beta',
915               },
916               'action_name': 'rpm_packages_<(channel)',
917               'process_outputs_as_sources': 1,
918               'inputs': [
919                 '<(rpm_build)',
920                 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
921                 '<@(packaging_files_binaries)',
922                 '<@(packaging_files_common)',
923                 '<@(packaging_files_rpm)',
924               ],
925               'outputs': [
926                 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
927               ],
928               'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
929             },
930           ],
931         },
932         {
933           'target_name': 'linux_packages_stable_rpm',
934           'suppress_wildcard': 1,
935           'type': 'none',
936           'dependencies': [
937             'chrome',
938             'linux_installer_configs',
939           ],
940           'actions': [
941             {
942               'variables': {
943                 'channel': 'stable',
944               },
945               'action_name': 'rpm_packages_<(channel)',
946               'process_outputs_as_sources': 1,
947               'inputs': [
948                 '<(rpm_build)',
949                 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
950                 '<@(packaging_files_binaries)',
951                 '<@(packaging_files_common)',
952                 '<@(packaging_files_rpm)',
953               ],
954               'outputs': [
955                 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
956               ],
957               'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
958             },
959           ],
960         },
961       ],
962     }],
963     ['OS=="mac"', {
964       'variables': {
965         'mac_packaging_dir':
966             '<(PRODUCT_DIR)/<(mac_product_name) Packaging',
967         # <(PRODUCT_DIR) expands to $(BUILT_PRODUCTS_DIR), which doesn't
968         # work properly in a shell script, where ${BUILT_PRODUCTS_DIR} is
969         # needed.
970         'mac_packaging_sh_dir':
971             '${BUILT_PRODUCTS_DIR}/<(mac_product_name) Packaging',
972       }, # variables
973       'targets': [
974         {
975           'target_name': 'installer_packaging',
976           'type': 'none',
977           'dependencies': [
978             'installer/mac/third_party/bsdiff/goobsdiff.gyp:*',
979             'installer/mac/third_party/xz/xz.gyp:*',
980           ],
981           'conditions': [
982             ['buildtype=="Official"', {
983               'actions': [
984                 {
985                   # Create sign.sh, the script that the packaging system will
986                   # use to sign the .app bundle.
987                   'action_name': 'Make sign.sh',
988                   'variables': {
989                     'make_signers_sh_path': 'installer/mac/make_signers.sh',
990                   },
991                   'inputs': [
992                     '<(make_signers_sh_path)',
993                     'installer/mac/sign_app.sh.in',
994                     'installer/mac/sign_versioned_dir.sh.in',
995                     'installer/mac/app_resource_rules.plist.in',
996                     '<(version_path)',
997                   ],
998                   'outputs': [
999                     '<(mac_packaging_dir)/sign_app.sh',
1000                     '<(mac_packaging_dir)/sign_versioned_dir.sh',
1001                     '<(mac_packaging_dir)/app_resource_rules.plist',
1002                   ],
1003                   'action': [
1004                     '<(make_signers_sh_path)',
1005                     '<(mac_packaging_sh_dir)',
1006                     '<(mac_product_name)',
1007                     '<(version_full)',
1008                   ],
1009                 },
1010               ],  # actions
1011             }],  # buildtype=="Official"
1012           ],  # conditions
1013           'copies': [
1014             {
1015               # Put the files where the packaging system will find them. The
1016               # packager will use these when building the "full installer"
1017               # disk images and delta/differential update disk images.
1018               'destination': '<(mac_packaging_dir)',
1019               'files': [
1020                 '<(PRODUCT_DIR)/goobsdiff',
1021                 '<(PRODUCT_DIR)/goobspatch',
1022                 '<(PRODUCT_DIR)/liblzma_decompress.dylib',
1023                 '<(PRODUCT_DIR)/xz',
1024                 '<(PRODUCT_DIR)/xzdec',
1025                 'installer/mac/dirdiffer.sh',
1026                 'installer/mac/dirpatcher.sh',
1027                 'installer/mac/dmgdiffer.sh',
1028                 'installer/mac/pkg-dmg',
1029               ],
1030               'conditions': [
1031                 ['mac_keystone==1', {
1032                   'files': [
1033                     'installer/mac/keystone_install.sh',
1034                   ],
1035                 }],  # mac_keystone
1036                 ['branding=="Chrome" and buildtype=="Official"', {
1037                   'files': [
1038                     'app/theme/google_chrome/mac/app_canary.icns',
1039                     'app/theme/google_chrome/mac/document_canary.icns',
1040                     'installer/mac/internal/chrome_canary_dmg_dsstore',
1041                     'installer/mac/internal/chrome_canary_dmg_icon.icns',
1042                     'installer/mac/internal/chrome_dmg_background.png',
1043                     'installer/mac/internal/chrome_dmg_dsstore',
1044                     'installer/mac/internal/chrome_dmg_icon.icns',
1045                     'installer/mac/internal/generate_dmgs',
1046                   ],
1047                 }],  # branding=="Chrome" and buildtype=="Official"
1048               ],  # conditions
1049             },
1050           ],  # copies
1051         },  # target: installer_packaging
1052         {
1053           'target_name': 'gcapi_lib',
1054           'type': 'static_library',
1055           'include_dirs': [
1056             '..',
1057           ],
1058           'sources': [
1059             'installer/gcapi_mac/gcapi.h',
1060             'installer/gcapi_mac/gcapi.mm',
1061           ],
1062           'link_settings': {
1063             'libraries': [
1064               '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
1065             ],
1066           },
1067           'xcode_settings': {
1068             'ARCHS': [ 'i386', 'x86_64' ],
1069             'MACOSX_DEPLOYMENT_TARGET': '10.4',
1070             'GCC_ENABLE_OBJC_GC': 'supported',
1071           },
1072         },
1073         {
1074           'target_name': 'gcapi_example',
1075           'type': 'executable',
1076           'dependencies': [
1077             'gcapi_lib',
1078           ],
1079           'include_dirs': [
1080             '..',
1081           ],
1082           'sources': [
1083             'installer/gcapi_mac/gcapi_example_client.mm',
1084           ],
1085         },
1086       ],  # targets
1087     }],  # OS=="mac"
1088     [ 'branding == "Chrome"', {
1089       'variables': {
1090          'branding_dir': 'app/theme/google_chrome',
1091          'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
1092       },
1093     }, { # else branding!="Chrome"
1094       'variables': {
1095          'branding_dir': 'app/theme/chromium',
1096          'branding_dir_100': 'app/theme/default_100_percent/chromium',
1097       },
1098     }],
1099   ],