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