blob: c424e77d96e06d05fbe4c223ba2ba2cd66aa2bd7 [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'variables': {
'lastchange_path': '../build/util/LASTCHANGE',
'libpeer_target_type%': 'static_library',
# 'branding_dir' is set in the 'conditions' section at the bottom.
},
'conditions': [
['OS=="win"', {
'targets': [
{
'target_name': 'gcapi_dll',
'type': 'loadable_module',
'dependencies': [
'gcapi_lib',
],
'include_dirs': [
'..',
],
'sources': [
'installer/gcapi/gcapi.def',
'installer/gcapi/gcapi_dll.cc',
],
},
{
'target_name': 'gcapi_lib',
'type': 'static_library',
'dependencies': [
'installer_util',
'../base/base.gyp:base',
'../chrome/chrome.gyp:launcher_support',
'../google_update/google_update.gyp:google_update',
],
'include_dirs': [
'..',
],
'sources': [
'installer/gcapi/gcapi.cc',
'installer/gcapi/gcapi.h',
'installer/gcapi/gcapi_omaha_experiment.cc',
'installer/gcapi/gcapi_omaha_experiment.h',
'installer/gcapi/gcapi_reactivation.cc',
'installer/gcapi/gcapi_reactivation.h',
],
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
},
{
'target_name': 'gcapi_test',
'type': 'executable',
'dependencies': [
'common',
'gcapi_dll',
'gcapi_lib',
'installer_util',
'../base/base.gyp:base',
'../base/base.gyp:test_support_base',
'../testing/gtest.gyp:gtest',
],
'include_dirs': [
'..',
],
'sources': [
'installer/gcapi/gcapi_last_run_test.cc',
'installer/gcapi/gcapi_omaha_experiment_test.cc',
'installer/gcapi/gcapi_reactivation_test.cc',
'installer/gcapi/gcapi_test_registry_overrider.cc',
'installer/gcapi/gcapi_test_registry_overrider.h',
'installer/gcapi/gcapi_test.cc',
'installer/gcapi/gcapi_test.rc',
'installer/gcapi/resource.h',
],
},
{
'target_name': 'installer_util_unittests',
'type': 'executable',
'dependencies': [
'installer_util',
'installer_util_strings',
'installer/upgrade_test.gyp:alternate_version_generator_lib',
'../base/base.gyp:base',
'../base/base.gyp:base_i18n',
'../base/base.gyp:test_support_base',
'../chrome/chrome.gyp:chrome_version_resources',
'../content/content.gyp:content_common',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
],
'include_dirs': [
'..',
],
'sources': [
'installer/setup/compat_checks_unittest.cc',
'installer/setup/setup_constants.cc',
'installer/util/callback_work_item_unittest.cc',
'installer/util/channel_info_unittest.cc',
'installer/util/copy_reg_key_work_item_unittest.cc',
'installer/util/copy_tree_work_item_unittest.cc',
'installer/util/create_dir_work_item_unittest.cc',
'installer/util/create_reg_key_work_item_unittest.cc',
'installer/util/delete_after_reboot_helper_unittest.cc',
'installer/util/delete_reg_key_work_item_unittest.cc',
'installer/util/delete_reg_value_work_item_unittest.cc',
'installer/util/delete_tree_work_item_unittest.cc',
'installer/util/duplicate_tree_detector_unittest.cc',
'installer/util/fake_installation_state.h',
'installer/util/fake_product_state.h',
'installer/util/google_update_settings_unittest.cc',
'installer/util/install_util_unittest.cc',
'installer/util/installation_validation_helper.cc',
'installer/util/installation_validation_helper.h',
'installer/util/installation_validator_unittest.cc',
'installer/util/installer_state_unittest.cc',
'installer/util/installer_util_test_common.cc',
'installer/util/installer_util_test_common.h',
'installer/util/installer_util_unittests.rc',
'installer/util/installer_util_unittests_resource.h',
'installer/util/language_selector_unittest.cc',
'installer/util/logging_installer_unittest.cc',
'installer/util/lzma_util_unittest.cc',
'installer/util/master_preferences_unittest.cc',
'installer/util/move_tree_work_item_unittest.cc',
'installer/util/product_state_unittest.cc',
'installer/util/product_unittest.cc',
'installer/util/product_unittest.h',
'installer/util/registry_key_backup_unittest.cc',
'installer/util/registry_test_data.cc',
'installer/util/registry_test_data.h',
'installer/util/run_all_unittests.cc',
'installer/util/self_cleaning_temp_dir_unittest.cc',
'installer/util/set_reg_value_work_item_unittest.cc',
'installer/util/shell_util_unittest.cc',
'installer/util/uninstall_metrics_unittest.cc',
'installer/util/wmi_unittest.cc',
'installer/util/work_item_list_unittest.cc',
'<(SHARED_INTERMEDIATE_DIR)/chrome_version/other_version.rc',
],
'msvs_settings': {
'VCManifestTool': {
'AdditionalManifestFiles': [
'$(ProjectDir)\\installer\\mini_installer\\mini_installer.exe.manifest',
],
},
},
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
},
{
'target_name': 'installer_util_strings',
'type': 'none',
'rules': [
{
'rule_name': 'installer_util_strings',
'extension': 'grd',
'variables': {
'create_string_rc_py' : 'installer/util/prebuild/create_string_rc.py',
},
'inputs': [
'<(create_string_rc_py)',
'<(RULE_INPUT_PATH)',
],
'outputs': [
# Don't use <(RULE_INPUT_ROOT) to create the output file
# name, because the base name of the input
# (generated_resources.grd) doesn't match the generated file
# (installer_util_strings.h).
'<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.h',
'<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc',
],
'action': ['python',
'<(create_string_rc_py)',
'<(SHARED_INTERMEDIATE_DIR)/installer_util_strings',
'<(branding)',],
'message': 'Generating resources from <(RULE_INPUT_PATH)',
'msvs_cygwin_shell': 1,
},
],
'sources': [
'app/chromium_strings.grd',
],
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/installer_util_strings',
],
},
},
{
'target_name': 'launcher_support',
'type': 'static_library',
'include_dirs': [
'..',
],
'direct_dependent_settings': {
'include_dirs': [
'..',
],
},
'dependencies': [
'<(DEPTH)/base/base.gyp:base',
],
'sources': [
'installer/launcher_support/chrome_launcher_support.cc',
'installer/launcher_support/chrome_launcher_support.h',
],
},
{
'target_name': 'mini_installer_test',
'type': 'executable',
'dependencies': [
'installer_util',
'installer_util_strings',
'../base/base.gyp:base',
'../base/base.gyp:base_i18n',
'../base/base.gyp:test_support_base',
'../chrome/chrome.gyp:test_support_common',
'../testing/gtest.gyp:gtest',
],
'include_dirs': [
'..',
],
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc',
'installer/util/installation_validation_helper.cc',
'installer/util/installation_validation_helper.h',
'test/mini_installer_test/installer_path_provider.cc',
'test/mini_installer_test/installer_path_provider.h',
'test/mini_installer_test/installer_test_util.cc',
'test/mini_installer_test/installer_test_util.h',
'test/mini_installer_test/mini_installer_test_constants.cc',
'test/mini_installer_test/mini_installer_test_constants.h',
'test/mini_installer_test/run_all_unittests.cc',
'test/mini_installer_test/switch_builder.cc',
'test/mini_installer_test/switch_builder.h',
'test/mini_installer_test/test.cc',
],
'msvs_settings': {
'VCManifestTool': {
'AdditionalManifestFiles': [
'$(ProjectDir)\\installer\\mini_installer\\mini_installer.exe.manifest',
],
},
},
},
{
'target_name': 'setup',
'type': 'executable',
'dependencies': [
'installer_util',
'installer_util_strings',
'launcher_support',
'../base/base.gyp:base',
'../breakpad/breakpad.gyp:breakpad_handler',
'../chrome/common_constants.gyp:common_constants',
'../chrome_frame/chrome_frame.gyp:chrome_tab_idl',
'../chrome_frame/chrome_frame.gyp:npchrome_frame',
'../rlz/rlz.gyp:rlz_lib',
'../third_party/zlib/zlib.gyp:zlib',
],
'include_dirs': [
'..',
'<(INTERMEDIATE_DIR)',
'<(SHARED_INTERMEDIATE_DIR)/setup',
],
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/setup',
],
},
'sources': [
'installer/mini_installer/chrome.release',
'installer/setup/archive_patch_helper.cc',
'installer/setup/archive_patch_helper.h',
'installer/setup/cf_migration.cc',
'installer/setup/cf_migration.h',
'installer/setup/chrome_frame_quick_enable.cc',
'installer/setup/chrome_frame_quick_enable.h',
'installer/setup/chrome_frame_ready_mode.cc',
'installer/setup/chrome_frame_ready_mode.h',
'installer/setup/install.cc',
'installer/setup/install.h',
'installer/setup/install_worker.cc',
'installer/setup/install_worker.h',
'installer/setup/setup_main.cc',
'installer/setup/setup_main.h',
'installer/setup/setup.ico',
'installer/setup/setup.rc',
'installer/setup/setup_constants.cc',
'installer/setup/setup_constants.h',
'installer/setup/setup_exe_version.rc.version',
'installer/setup/setup_resource.h',
'installer/setup/setup_util.cc',
'installer/setup/setup_util.h',
'installer/setup/uninstall.cc',
'installer/setup/uninstall.h',
],
'msvs_settings': {
'VCLinkerTool': {
'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
},
'VCManifestTool': {
'AdditionalManifestFiles': [
'$(ProjectDir)\\installer\\setup\\setup.exe.manifest',
],
},
},
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
'rules': [
{
'rule_name': 'setup_version',
'extension': 'version',
'variables': {
'version_py_path': '../chrome/tools/build/version.py',
'template_input_path': 'installer/setup/setup_exe_version.rc.version',
},
'inputs': [
'<(template_input_path)',
'<(version_path)',
'<(lastchange_path)',
'<(branding_dir)/BRANDING',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/setup/setup_exe_version.rc',
],
'action': [
'python', '<(version_py_path)',
'-f', '<(version_path)',
'-f', '<(lastchange_path)',
'-f', '<(branding_dir)/BRANDING',
'<(template_input_path)',
'<@(_outputs)',
],
'process_outputs_as_sources': 1,
'message': 'Generating version information'
},
{
'rule_name': 'server_dlls',
'extension': 'release',
'variables': {
'scan_server_dlls_py' : 'tools/build/win/scan_server_dlls.py',
'template_file': 'installer/mini_installer/chrome.release',
},
'inputs': [
'<(scan_server_dlls_py)',
'<(template_file)'
],
'outputs': [
'<(INTERMEDIATE_DIR)/registered_dlls.h',
],
'action': [
'python',
'<(scan_server_dlls_py)',
'--output_dir=<(PRODUCT_DIR)',
'--input_file=<(RULE_INPUT_PATH)',
'--header_output_dir=<(INTERMEDIATE_DIR)',
# TODO(sgk): may just use environment variables
#'--distribution=$(CHROMIUM_BUILD)',
'--distribution=_google_chrome',
],
'msvs_cygwin_shell': 1,
},
],
'conditions': [
['component == "shared_library"', {
'variables': {
'win_use_external_manifest': 1,
},
}],
# TODO(mark): <(branding_dir) should be defined by the
# global condition block at the bottom of the file, but
# this doesn't work due to the following issue:
#
# http://code.google.com/p/gyp/issues/detail?id=22
#
# Remove this block once the above issue is fixed.
[ 'branding == "Chrome"', {
'variables': {
'branding_dir': 'app/theme/google_chrome',
'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
},
}, { # else branding!="Chrome"
'variables': {
'branding_dir': 'app/theme/chromium',
'branding_dir_100': 'app/theme/default_100_percent/chromium',
},
}],
['target_arch=="x64"', {
'dependencies!': [
'../chrome_frame/chrome_frame.gyp:chrome_tab_idl',
'../chrome_frame/chrome_frame.gyp:npchrome_frame',
],
'defines': [
'OMIT_CHROME_FRAME',
],
}],
],
},
{
'target_name': 'setup_unittests',
'type': 'executable',
'dependencies': [
'installer_util',
'installer_util_strings',
'launcher_support',
'../base/base.gyp:base',
'../base/base.gyp:base_i18n',
'../base/base.gyp:test_support_base',
'../chrome_frame/chrome_frame.gyp:chrome_tab_idl',
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
],
'include_dirs': [
'..',
'<(INTERMEDIATE_DIR)',
],
# TODO(robertshield): Move the items marked with "Move to lib"
# below into a separate lib and then link both setup.exe and
# setup_unittests.exe against that.
'sources': [
'installer/mini_installer/chrome.release', # Move to lib
'installer/mini_installer/appid.h',
'installer/mini_installer/chrome_appid.cc',
'installer/mini_installer/configuration.cc',
'installer/mini_installer/configuration.h',
'installer/mini_installer/configuration_test.cc',
'installer/mini_installer/decompress.cc',
'installer/mini_installer/decompress.h',
'installer/mini_installer/decompress_test.cc',
'installer/mini_installer/mini_string.cc',
'installer/mini_installer/mini_string.h',
'installer/mini_installer/mini_string_test.cc',
'installer/setup/archive_patch_helper.cc', # Move to lib
'installer/setup/archive_patch_helper.h', # Move to lib
'installer/setup/archive_patch_helper_unittest.cc',
'installer/setup/install.cc', # Move to lib
'installer/setup/install.h', # Move to lib
'installer/setup/install_unittest.cc',
'installer/setup/install_worker.cc', # Move to lib
'installer/setup/install_worker.h', # Move to lib
'installer/setup/install_worker_unittest.cc',
'installer/setup/run_all_unittests.cc',
'installer/setup/setup_constants.cc', # Move to lib
'installer/setup/setup_constants.h', # Move to lib
'installer/setup/setup_unittests.rc',
'installer/setup/setup_unittests_resource.h',
'installer/setup/setup_util.cc',
'installer/setup/setup_util_unittest.cc',
'installer/setup/setup_util_unittest.h',
],
'rules': [
{
'rule_name': 'server_dlls', # Move to lib
'extension': 'release',
'variables': {
'scan_server_dlls_py' : 'tools/build/win/scan_server_dlls.py',
'template_file': 'installer/mini_installer/chrome.release',
},
'inputs': [
'<(scan_server_dlls_py)',
'<(template_file)'
],
'outputs': [
'<(INTERMEDIATE_DIR)/registered_dlls.h',
],
'action': [
'python',
'<(scan_server_dlls_py)',
'--output_dir=<(PRODUCT_DIR)',
'--input_file=<(RULE_INPUT_PATH)',
'--header_output_dir=<(INTERMEDIATE_DIR)',
# TODO(sgk): may just use environment variables
#'--distribution=$(CHROMIUM_BUILD)',
'--distribution=_google_chrome',
],
'msvs_cygwin_shell': 1,
},
],
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
},
],
}],
['OS=="win" and target_arch=="ia32"', {
'targets': [
{
'target_name': 'launcher_support64',
'type': 'static_library',
'include_dirs': [
'..',
],
'direct_dependent_settings': {
'include_dirs': [
'..',
],
},
'defines': [
'<@(nacl_win64_defines)',
],
'dependencies': [
'<(DEPTH)/base/base.gyp:base_nacl_win64',
],
'configurations': {
'Common_Base': {
'msvs_target_platform': 'x64',
},
},
'sources': [
'installer/launcher_support/chrome_launcher_support.cc',
'installer/launcher_support/chrome_launcher_support.h',
],
},
],
}],
['OS=="linux" and branding=="Chrome"', {
'variables': {
# Always google_chrome since this only applies to branding==Chrome.
'branding_dir': 'app/theme/google_chrome',
'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
'version' : '<!(python <(version_py_path) -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
'revision' : '<!(python ../build/util/lastchange.py --revision-only)',
'packaging_files_common': [
'installer/linux/common/apt.include',
'installer/linux/common/default-app.template',
'installer/linux/common/default-app-block.template',
'installer/linux/common/desktop.template',
'installer/linux/common/google-chrome/google-chrome.info',
'installer/linux/common/installer.include',
'installer/linux/common/postinst.include',
'installer/linux/common/prerm.include',
'installer/linux/common/repo.cron',
'installer/linux/common/rpm.include',
'installer/linux/common/rpmrepo.cron',
'installer/linux/common/symlinks.include',
'installer/linux/common/variables.include',
'installer/linux/common/wrapper',
],
'packaging_files_deb': [
'installer/linux/debian/build.sh',
'installer/linux/debian/changelog.template',
'installer/linux/debian/control.template',
'installer/linux/debian/debian.menu',
'installer/linux/debian/expected_deps',
'installer/linux/debian/postinst',
'installer/linux/debian/postrm',
'installer/linux/debian/prerm',
],
'packaging_files_rpm': [
'installer/linux/rpm/build.sh',
'installer/linux/rpm/chrome.spec.template',
'installer/linux/rpm/expected_deps_i386',
'installer/linux/rpm/expected_deps_x86_64',
],
'packaging_files_binaries': [
# TODO(mmoss) Any convenient way to get all the relevant build
# files? (e.g. all locales, resources, etc.)
'<(PRODUCT_DIR)/chrome',
'<(PRODUCT_DIR)/chrome_sandbox',
'<(PRODUCT_DIR)/libffmpegsumo.so',
'<(PRODUCT_DIR)/libppGoogleNaClPluginChrome.so',
'<(PRODUCT_DIR)/xdg-mime',
'<(PRODUCT_DIR)/xdg-settings',
'<(PRODUCT_DIR)/locales/en-US.pak',
'<(PRODUCT_DIR)/nacl_helper',
'<(PRODUCT_DIR)/nacl_helper_bootstrap',
'<(PRODUCT_DIR)/PepperFlash/libpepflashplayer.so',
'<(PRODUCT_DIR)/PepperFlash/manifest.json',
'<@(default_apps_list_linux_dest)',
],
'flock_bash': ['flock', '--', '/tmp/linux_package_lock', 'bash'],
'deb_build': '<(PRODUCT_DIR)/installer/debian/build.sh',
'rpm_build': '<(PRODUCT_DIR)/installer/rpm/build.sh',
'deb_cmd': ['<@(flock_bash)', '<(deb_build)', '-o' '<(PRODUCT_DIR)',
'-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
'rpm_cmd': ['<@(flock_bash)', '<(rpm_build)', '-o' '<(PRODUCT_DIR)',
'-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'],
'conditions': [
['target_arch=="ia32"', {
'deb_arch': 'i386',
'rpm_arch': 'i386',
'packaging_files_binaries': [
'<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
'<(PRODUCT_DIR)/libwidevinecdmadapter.so',
'<(PRODUCT_DIR)/libwidevinecdm.so',
],
}],
['target_arch=="x64"', {
'deb_arch': 'amd64',
'rpm_arch': 'x86_64',
'packaging_files_binaries': [
'<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
'<(PRODUCT_DIR)/libwidevinecdmadapter.so',
'<(PRODUCT_DIR)/libwidevinecdm.so',
],
}],
['target_arch=="arm"', {
'deb_arch': 'arm',
'rpm_arch': 'arm',
}],
['internal_pdf', {
'packaging_files_binaries': [
'<(PRODUCT_DIR)/libpdf.so',
],
}],
['libpeer_target_type!="static_library"', {
'packaging_files_binaries': [
'<(PRODUCT_DIR)/lib/libpeerconnection.so',
],
}],
],
},
'targets': [
{
'target_name': 'linux_installer_configs',
'type': 'none',
# Add these files to the build output so the build archives will be
# "hermetic" for packaging. This is only for branding="Chrome" since
# we only create packages for official builds.
'copies': [
{
'destination': '<(PRODUCT_DIR)/installer/debian/',
'files': [
'<@(packaging_files_deb)',
]
},
{
'destination': '<(PRODUCT_DIR)/installer/rpm/',
'files': [
'<@(packaging_files_rpm)',
]
},
{
'destination': '<(PRODUCT_DIR)/installer/common/',
'files': [
'<@(packaging_files_common)',
]
},
# Additional theme resources needed for package building.
{
'destination': '<(PRODUCT_DIR)/installer/theme/',
'files': [
'<(branding_dir_100)/product_logo_16.png',
'<(branding_dir)/product_logo_22.png',
'<(branding_dir)/product_logo_24.png',
'<(branding_dir_100)/product_logo_32.png',
'<(branding_dir)/product_logo_48.png',
'<(branding_dir)/product_logo_64.png',
'<(branding_dir)/product_logo_128.png',
'<(branding_dir)/product_logo_256.png',
'<(branding_dir)/product_logo_32.xpm',
'<(branding_dir)/BRANDING',
],
},
],
'actions': [
{
'action_name': 'save_build_info',
'inputs': [
'<(branding_dir)/BRANDING',
'<(version_path)',
'<(lastchange_path)',
],
'outputs': [
'<(PRODUCT_DIR)/installer/version.txt',
],
# Just output the default version info variables.
'action': [
'python', '<(version_py_path)',
'-f', '<(branding_dir)/BRANDING',
'-f', '<(version_path)',
'-f', '<(lastchange_path)',
'-o', '<@(_outputs)'
],
},
],
},
{
'target_name': 'linux_packages_all',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_unstable',
'linux_packages_beta',
'linux_packages_stable',
],
},
{
# 'asan' is a developer, testing-only package, so it shouldn't be
# included in the 'linux_packages_all' collection.
'target_name': 'linux_packages_asan',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_asan_deb',
],
# ChromeOS doesn't care about RPM packages.
'conditions': [
['chromeos==0', {
'dependencies': [
'linux_packages_asan_rpm',
],
}],
],
},
{
# 'trunk' is a developer, testing-only package, so it shouldn't be
# included in the 'linux_packages_all' collection.
'target_name': 'linux_packages_trunk',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_trunk_deb',
],
# ChromeOS doesn't care about RPM packages.
'conditions': [
['chromeos==0', {
'dependencies': [
'linux_packages_trunk_rpm',
],
}],
],
},
{
'target_name': 'linux_packages_unstable',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_unstable_deb',
],
# ChromeOS doesn't care about RPM packages.
'conditions': [
['chromeos==0', {
'dependencies': [
'linux_packages_unstable_rpm',
],
}],
],
},
{
'target_name': 'linux_packages_beta',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_beta_deb',
],
# ChromeOS doesn't care about RPM packages.
'conditions': [
['chromeos==0', {
'dependencies': [
'linux_packages_beta_rpm',
],
}],
],
},
{
'target_name': 'linux_packages_stable',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'linux_packages_stable_deb',
],
# ChromeOS doesn't care about RPM packages.
'conditions': [
['chromeos==0', {
'dependencies': [
'linux_packages_stable_rpm',
],
}],
],
},
# TODO(mmoss) gyp looping construct would be handy here ...
# These package actions are the same except for the 'channel' variable.
{
'target_name': 'linux_packages_asan_deb',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'asan',
},
'action_name': 'deb_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(deb_build)',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_deb)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
],
'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_trunk_deb',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'trunk',
},
'action_name': 'deb_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(deb_build)',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_deb)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
],
'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_unstable_deb',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'unstable',
},
'action_name': 'deb_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(deb_build)',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_deb)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
],
'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_beta_deb',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'beta',
},
'action_name': 'deb_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(deb_build)',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_deb)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
],
'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_stable_deb',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'stable',
},
'action_name': 'deb_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(deb_build)',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_deb)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb',
],
'action': [ '<@(deb_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_asan_rpm',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'asan',
},
'action_name': 'rpm_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(rpm_build)',
'<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_rpm)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
],
'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_trunk_rpm',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'trunk',
},
'action_name': 'rpm_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(rpm_build)',
'<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_rpm)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
],
'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_unstable_rpm',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'unstable',
},
'action_name': 'rpm_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(rpm_build)',
'<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_rpm)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
],
'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_beta_rpm',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'beta',
},
'action_name': 'rpm_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(rpm_build)',
'<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_rpm)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
],
'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
},
],
},
{
'target_name': 'linux_packages_stable_rpm',
'suppress_wildcard': 1,
'type': 'none',
'dependencies': [
'chrome',
'linux_installer_configs',
],
'actions': [
{
'variables': {
'channel': 'stable',
},
'action_name': 'rpm_packages_<(channel)',
'process_outputs_as_sources': 1,
'inputs': [
'<(rpm_build)',
'<(PRODUCT_DIR)/installer/rpm/chrome.spec.template',
'<@(packaging_files_binaries)',
'<@(packaging_files_common)',
'<@(packaging_files_rpm)',
],
'outputs': [
'<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm',
],
'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ],
},
],
},
],
}],
['OS=="mac"', {
'variables': {
'mac_packaging_dir':
'<(PRODUCT_DIR)/<(mac_product_name) Packaging',
# <(PRODUCT_DIR) expands to $(BUILT_PRODUCTS_DIR), which doesn't
# work properly in a shell script, where ${BUILT_PRODUCTS_DIR} is
# needed.
'mac_packaging_sh_dir':
'${BUILT_PRODUCTS_DIR}/<(mac_product_name) Packaging',
}, # variables
'targets': [
{
'target_name': 'installer_packaging',
'type': 'none',
'dependencies': [
'installer/mac/third_party/bsdiff/goobsdiff.gyp:*',
'installer/mac/third_party/xz/xz.gyp:*',
],
'conditions': [
['buildtype=="Official"', {
'actions': [
{
# Create sign.sh, the script that the packaging system will
# use to sign the .app bundle.
'action_name': 'Make sign.sh',
'variables': {
'make_signers_sh_path': 'installer/mac/make_signers.sh',
},
'inputs': [
'<(make_signers_sh_path)',
'installer/mac/sign_app.sh.in',
'installer/mac/sign_versioned_dir.sh.in',
'installer/mac/app_resource_rules.plist.in',
'<(version_path)',
],
'outputs': [
'<(mac_packaging_dir)/sign_app.sh',
'<(mac_packaging_dir)/sign_versioned_dir.sh',
'<(mac_packaging_dir)/app_resource_rules.plist',
],
'action': [
'<(make_signers_sh_path)',
'<(mac_packaging_sh_dir)',
'<(mac_product_name)',
'<(version_full)',
],
},
], # actions
}], # buildtype=="Official"
['branding=="Chrome" and buildtype=="Official"', {
'actions': [
{
# copy_keychain_reauthorize.sh explains why this isn't in a
# 'copies' block, but briefly: this is a prebuilt signed
# binary component that relies on a correct signature to
# function properly, and a normal 'copies' block sadly makes
# a trivial modification to the file such that its signature
# is no longer valid.
'action_name': 'Copy keychain_reauthorize',
'variables': {
'keychain_reauthorize_path': 'tools/build/mac/copy_keychain_reauthorize.sh',
'keychain_reauthorize_normal_path': 'installer/mac/internal/keychain_reauthorize/com.google.Chrome',
'keychain_reauthorize_canary_path': 'installer/mac/internal/keychain_reauthorize/com.google.Chrome.canary',
'keychain_reauthorize_output_dir': '<(mac_packaging_dir)/.keychain_reauthorize',
},
'inputs': [
'<(keychain_reauthorize_path)',
'<(keychain_reauthorize_normal_path)',
'<(keychain_reauthorize_canary_path)',
],
'outputs': [
'<(keychain_reauthorize_output_dir)/com.google.Chrome',
'<(keychain_reauthorize_output_dir)/com.google.Chrome.canary',
],
'action': [
'<(keychain_reauthorize_path)',
'<(keychain_reauthorize_output_dir)',
'<(keychain_reauthorize_normal_path)',
'<(keychain_reauthorize_canary_path)',
],
},
], # actions
}], # branding=="Chrome" and buildtype=="Official"
], # conditions
'copies': [
{
# Put the files where the packaging system will find them. The
# packager will use these when building the "full installer"
# disk images and delta/differential update disk images.
'destination': '<(mac_packaging_dir)',
'files': [
'<(PRODUCT_DIR)/goobsdiff',
'<(PRODUCT_DIR)/goobspatch',
'<(PRODUCT_DIR)/liblzma_decompress.dylib',
'<(PRODUCT_DIR)/xz',
'<(PRODUCT_DIR)/xzdec',
'installer/mac/dirdiffer.sh',
'installer/mac/dirpatcher.sh',
'installer/mac/dmgdiffer.sh',
'installer/mac/pkg-dmg',
],
'conditions': [
['mac_keystone==1', {
'files': [
'installer/mac/keystone_install.sh',
],
}], # mac_keystone
['branding=="Chrome" and buildtype=="Official"', {
'files': [
'app/theme/google_chrome/app_canary.icns',
'app/theme/google_chrome/document_canary.icns',
'installer/mac/internal/chrome_canary_dmg_dsstore',
'installer/mac/internal/chrome_canary_dmg_icon.icns',
'installer/mac/internal/chrome_dmg_background.png',
'installer/mac/internal/chrome_dmg_dsstore',
'installer/mac/internal/chrome_dmg_icon.icns',
'installer/mac/internal/generate_dmgs',
],
}], # branding=="Chrome" and buildtype=="Official"
], # conditions
},
], # copies
}, # target: installer_packaging
{
'target_name': 'gcapi_lib',
'type': 'static_library',
'include_dirs': [
'..',
],
'sources': [
'installer/gcapi_mac/gcapi.h',
'installer/gcapi_mac/gcapi.mm',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
],
},
'xcode_settings': {
'ARCHS': [ 'i386', 'x86_64' ],
'MACOSX_DEPLOYMENT_TARGET': '10.4',
'GCC_ENABLE_OBJC_GC': 'supported',
},
},
{
'target_name': 'gcapi_example',
'type': 'executable',
'dependencies': [
'gcapi_lib',
],
'include_dirs': [
'..',
],
'sources': [
'installer/gcapi_mac/gcapi_example_client.mm',
],
},
], # targets
}], # OS=="mac"
[ 'branding == "Chrome"', {
'variables': {
'branding_dir': 'app/theme/google_chrome',
'branding_dir_100': 'app/theme/default_100_percent/google_chrome',
},
}, { # else branding!="Chrome"
'variables': {
'branding_dir': 'app/theme/chromium',
'branding_dir_100': 'app/theme/default_100_percent/chromium',
},
}],
],
}