# 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': { # Apply Chrome-specific grit settings to all of this file. # The advantage is that one entry here applies to the entire file. # The caveat is these variables cannot be merged with other variable # dictionaries in more inner scopes. If the variable should be merged, # consider putting them in a gypi file and including it at the right scope # instead. e.g. with chrome_grit_action.gypi. 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome', 'additional_modules_list_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/internal/additional_modules_list.txt', }, 'targets': [ { # GN version: //chrome:extra_resources 'target_name': 'chrome_extra_resources', 'type': 'none', # These resources end up in resources.pak because they are resources # used by internal pages. Putting them in a separate pak file makes # it easier for us to reference them internally. 'actions': [ { # GN version: //chrome/browser/resources:net_internals_resources 'action_name': 'generate_net_internals_resources', 'variables': { 'grit_grd_file': 'browser/resources/net_internals_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:invalidations_resources 'action_name': 'generate_invalidations_resources', 'variables': { 'grit_grd_file': 'browser/resources/invalidations_resources.grd', }, 'includes': ['chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:password_manager_internals_resources 'action_name': 'generate_password_manager_internals_resources', 'variables': { 'grit_grd_file': 'browser/resources/password_manager_internals_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:policy_resources 'action_name': 'generate_policy_resources', 'variables': { 'grit_grd_file': 'browser/resources/md_policy/policy_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:translate_internals_resources 'action_name': 'generate_translate_internals_resources', 'variables': { 'grit_grd_file': 'browser/resources/translate_internals_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], 'includes': [ '../build/grit_target.gypi' ], 'conditions': [ ['OS != "ios"', { 'dependencies': [ '../components/components_resources.gyp:components_resources', '../content/browser/devtools/devtools_resources.gyp:devtools_resources', '../content/browser/tracing/tracing_resources.gyp:tracing_resources', ], 'actions': [ { # GN version: //chrome/browser/resources:component_extension_resources 'action_name': 'generate_component_extension_resources', 'variables': { 'grit_grd_file': 'browser/resources/component_extension_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:options_resources 'action_name': 'generate_options_resources', 'variables': { 'grit_grd_file': 'browser/resources/options_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:settings_resources 'action_name': 'generate_settings_resources', 'variables': { 'grit_grd_file': 'browser/resources/settings/settings_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], 'copies': [ { # GN version: //chrome/browser/resources:extension_resource_demo 'destination': '<(PRODUCT_DIR)/resources/extension/demo', 'files': [ 'browser/resources/extension_resource/demo/library.js', ], }, ], }], ['chromeos==1 and disable_nacl==0 and disable_nacl_untrusted==0', { 'dependencies': [ 'browser/resources/chromeos/chromevox/chromevox.gyp:chromevox', ], }], ['enable_extensions==1', { 'actions': [ { # GN version: //chrome/browser/resources:quota_internals_resources 'action_name': 'generate_quota_internals_resources', 'variables': { 'grit_grd_file': 'browser/resources/quota_internals_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/browser/resources:sync_file_system_internals_resources 'action_name': 'generate_sync_file_system_internals_resources', 'variables': { 'grit_grd_file': 'browser/resources/sync_file_system_internals_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], }], ], }, { # GN version: //chrome/browser:chrome_internal_resources_gen 'target_name': 'chrome_internal_resources_gen', 'type': 'none', 'conditions': [ ['branding=="Chrome"', { 'actions': [ { 'action_name': 'generate_transform_additional_modules_list', 'variables': { 'additional_modules_input_path': 'browser/internal/resources/additional_modules_list.input', 'additional_modules_py_path': 'browser/internal/transform_additional_modules_list.py', }, 'inputs': [ '<(additional_modules_input_path)', ], 'outputs': [ '<(additional_modules_list_file)', ], 'action': [ 'python', '<(additional_modules_py_path)', '<(additional_modules_input_path)', '<@(_outputs)', ], 'message': 'Transforming additional modules list', } ], }], ], }, { # TODO(mark): It would be better if each static library that needed # to run grit would list its own .grd files, but unfortunately some # of the static libraries currently have circular dependencies among # generated headers. # # GN version: //chrome:resources 'target_name': 'chrome_resources', 'type': 'none', 'dependencies': [ 'chrome_internal_resources_gen', 'chrome_web_ui_mojo_bindings.gyp:web_ui_mojo_bindings', ], 'actions': [ { # GN version: //chrome/browser:resources 'action_name': 'generate_browser_resources', 'variables': { 'grit_grd_file': 'browser/browser_resources.grd', 'grit_additional_defines': [ '-E', 'additional_modules_list_file=<(additional_modules_list_file)', '-E', 'root_gen_dir=<(SHARED_INTERMEDIATE_DIR)', ], }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/common:resources 'action_name': 'generate_common_resources', 'variables': { 'grit_grd_file': 'common/common_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/renderer:resources 'action_name': 'generate_renderer_resources', 'variables': { 'grit_grd_file': 'renderer/resources/renderer_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], 'conditions': [ ['enable_extensions==1', { 'actions': [ { # GN version: //chrome/common:extensions_api_resources 'action_name': 'generate_extensions_api_resources', 'variables': { 'grit_grd_file': 'common/extensions_api_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], } ], }], ], 'includes': [ '../build/grit_target.gypi' ], }, { # TODO(mark): It would be better if each static library that needed # to run grit would list its own .grd files, but unfortunately some # of the static libraries currently have circular dependencies among # generated headers. # # GN version: //chrome:strings 'target_name': 'chrome_strings', 'type': 'none', 'actions': [ { # GN version: //chrome/app/resources:locale_settings 'action_name': 'generate_locale_settings', 'variables': { 'grit_grd_file': 'app/resources/locale_settings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:chromium_strings 'action_name': 'generate_chromium_strings', 'variables': { 'grit_grd_file': 'app/chromium_strings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:generated_resources 'action_name': 'generate_generated_resources', 'variables': { 'grit_grd_file': 'app/generated_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:google_chrome_strings 'action_name': 'generate_google_chrome_strings', 'variables': { 'grit_grd_file': 'app/google_chrome_strings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:settings_strings 'action_name': 'generate_settings_strings', 'variables': { 'grit_grd_file': 'app/settings_strings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:settings_chromium_strings 'action_name': 'generate_settings_chromium_strings', 'variables': { 'grit_grd_file': 'app/settings_chromium_strings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, { # GN version: //chrome/app:settings_google_chrome_strings 'action_name': 'generate_settings_google_chrome_strings', 'variables': { 'grit_grd_file': 'app/settings_google_chrome_strings.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], }, { # GN version: //chrome/browser/metrics/variations:chrome_ui_string_overrider_factory_gen_sources 'target_name': 'make_chrome_ui_string_overrider_factory', 'type': 'none', 'hard_dependency': 1, 'dependencies': [ 'chrome_strings', '../components/components_strings.gyp:components_strings', ], 'actions': [ { 'action_name': 'generate_ui_string_overrider', 'inputs': [ '../components/variations/service/generate_ui_string_overrider.py', '<(grit_out_dir)/grit/chromium_strings.h', '<(grit_out_dir)/grit/generated_resources.h', '<(grit_out_dir)/grit/google_chrome_strings.h', '<(grit_out_dir)/grit/settings_chromium_strings.h', '<(grit_out_dir)/grit/settings_google_chrome_strings.h', '<(grit_out_dir)/grit/settings_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_chromium_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_google_chrome_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_strings.h' ], 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/ui_string_overrider_factory.cc', '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/ui_string_overrider_factory.h', ], 'action': [ 'python', '../components/variations/service/generate_ui_string_overrider.py', '-N', 'chrome_variations', '-o', '<(SHARED_INTERMEDIATE_DIR)', '-S', 'chrome/browser/metrics/variations/ui_string_overrider_factory.cc', '-H', 'chrome/browser/metrics/variations/ui_string_overrider_factory.h', '<(grit_out_dir)/grit/chromium_strings.h', '<(grit_out_dir)/grit/generated_resources.h', '<(grit_out_dir)/grit/google_chrome_strings.h', '<(grit_out_dir)/grit/settings_chromium_strings.h', '<(grit_out_dir)/grit/settings_google_chrome_strings.h', '<(grit_out_dir)/grit/settings_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_chromium_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_google_chrome_strings.h', '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_strings.h' ], 'message': 'Generating generated resources map.', } ], }, { # GN version: //chrome/browser/metrics/variations:chrome_ui_string_overrider_factory 'target_name': 'chrome_ui_string_overrider_factory', 'type': 'static_library', 'dependencies': [ '../components/components.gyp:variations_service', 'make_chrome_ui_string_overrider_factory', ], 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/ui_string_overrider_factory.cc', '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/ui_string_overrider_factory.h', ], }, { # GN version: //chrome/app/resources:platform_locale_settings 'target_name': 'platform_locale_settings', 'type': 'none', 'variables': { 'conditions': [ ['OS=="win"', { 'platform_locale_settings_grd': 'app/resources/locale_settings_win.grd', },], ['OS=="linux"', { 'conditions': [ ['chromeos==1', { 'platform_locale_settings_grd': 'app/resources/locale_settings_<(branding_path_component)os.grd', }, { # chromeos==0 'platform_locale_settings_grd': 'app/resources/locale_settings_linux.grd', }], ], },], ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "linux"', { 'platform_locale_settings_grd': 'app/resources/locale_settings_linux.grd', },], ['OS == "mac" or OS == "ios"', { 'platform_locale_settings_grd': 'app/resources/locale_settings_mac.grd', }], ], # conditions }, # variables 'actions': [ { 'action_name': 'generate_platform_locale_settings', 'variables': { 'grit_grd_file': '<(platform_locale_settings_grd)', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], 'includes': [ '../build/grit_target.gypi' ], }, { # GN version: //chrome/app/theme:theme_resources 'target_name': 'theme_resources', 'type': 'none', 'dependencies': [ '../ui/resources/ui_resources.gyp:ui_resources', 'chrome_unscaled_resources', ], 'actions': [ { 'action_name': 'generate_theme_resources', 'variables': { 'grit_grd_file': 'app/theme/theme_resources.grd', }, 'includes': [ 'chrome_grit_action.gypi' ], }, ], 'includes': [ '../build/grit_target.gypi' ], }, { # GN version: //chrome:packed_extra_resources 'target_name': 'packed_extra_resources', 'type': 'none', 'dependencies': [ 'chrome_extra_resources', 'packed_resources', ], 'actions': [ { 'includes': ['chrome_repack_resources.gypi'] }, ], 'conditions': [ ['OS != "mac" and OS != "ios"', { # We'll install the resource files to the product directory. The Mac # copies the results over as bundle resources in its own special way. 'copies': [ { 'destination': '<(PRODUCT_DIR)', 'files': [ '<(SHARED_INTERMEDIATE_DIR)/repack/resources.pak' ], }, ], }], ], }, { # GN version: //chrome:packed_resources 'target_name': 'packed_resources', 'type': 'none', 'dependencies': [ # Update duplicate logic in repack_locales.py # MSVS needs the dependencies explictly named, Make is able to # derive the dependencies from the output files. 'chrome_resources', 'chrome_strings', 'platform_locale_settings', 'theme_resources', '<(DEPTH)/components/components_strings.gyp:components_strings', '<(DEPTH)/net/net.gyp:net_resources', '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources', '<(DEPTH)/ui/strings/ui_strings.gyp:ui_strings', ], 'actions': [ { # GN version: //chrome:repack_locales_pack 'action_name': 'repack_locales_pack', 'variables': { 'pak_locales': '<(locales)', }, 'includes': ['chrome_repack_locales.gypi'] }, { # GN version: //chrome:repack_pseudo_locales_pack 'action_name': 'repack_pseudo_locales_pack', 'variables': { 'pak_locales': '<(pseudo_locales)', }, 'includes': ['chrome_repack_locales.gypi'] }, { 'includes': ['chrome_repack_chrome_100_percent.gypi'] }, { 'includes': ['chrome_repack_chrome_200_percent.gypi'] }, { 'includes': ['chrome_repack_chrome_material_100_percent.gypi'] }, { 'includes': ['chrome_repack_chrome_material_200_percent.gypi'] }, ], 'conditions': [ # GN version: chrome_repack_locales.gni template("_repack_one_locale") ['OS != "ios"', { 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/content/app/resources/content_resources.gyp:content_resources', '<(DEPTH)/content/app/strings/content_strings.gyp:content_strings', '<(DEPTH)/device/bluetooth/bluetooth_strings.gyp:bluetooth_strings', '<(DEPTH)/third_party/WebKit/public/blink_resources.gyp:blink_resources', ], }, { # else 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/ios/chrome/ios_chrome_resources.gyp:ios_strings_gen', ], 'actions': [ { 'includes': ['chrome_repack_chrome_300_percent.gypi'] }, ], }], ['use_ash==1', { 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/ash/ash_resources.gyp:ash_resources', '<(DEPTH)/ash/ash_strings.gyp:ash_strings', ], }], ['toolkit_views==1', { 'dependencies': [ '<(DEPTH)/ui/views/resources/views_resources.gyp:views_resources', ], }], ['chromeos==1', { 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/remoting/remoting.gyp:remoting_resources', '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos_resources', '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos_strings', ], }], ['enable_autofill_dialog==1 and OS!="android"', { 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/third_party/libaddressinput/libaddressinput.gyp:libaddressinput_strings', ], }], ['enable_extensions==1', { 'dependencies': [ # Update duplicate logic in repack_locales.py '<(DEPTH)/extensions/extensions_strings.gyp:extensions_strings', ], }], ['enable_app_list==1', { 'dependencies': [ '<(DEPTH)/ui/app_list/resources/app_list_resources.gyp:app_list_resources', ], }], ['OS != "mac" and OS != "ios"', { # Copy pak files to the product directory. These files will be picked # up by the following installer scripts: # - Windows: chrome/installer/mini_installer/chrome.release # - Linux: chrome/installer/linux/internal/common/installer.include # Ensure that the above scripts are updated when adding or removing # pak files. # Copying files to the product directory is not needed on the Mac # since the framework build phase will copy them into the framework # bundle directly. 'copies': [ { 'destination': '<(PRODUCT_DIR)', 'files': [ '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_100_percent.pak' ], }, { 'destination': '<(PRODUCT_DIR)/locales', 'files': [ '