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