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