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