diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 15:04:29 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-03 15:04:29 +0000 |
commit | 33d2a8a112b1f5ce2943877a279990165a963b37 (patch) | |
tree | eaf7522effbfe740991751d1e66ed4d89c01d24b /chrome/chrome_resources.gyp | |
parent | d0084c88b8deb992bbf781b23fb783252ae7d9ab (diff) | |
download | chromium_src-33d2a8a112b1f5ce2943877a279990165a963b37.zip chromium_src-33d2a8a112b1f5ce2943877a279990165a963b37.tar.gz chromium_src-33d2a8a112b1f5ce2943877a279990165a963b37.tar.bz2 |
Introduces chromium_resources.gyp to factor out Chrome resource generation
1. Factors out Chrome/Chromium resource generation into a separate
chrome_resources.gyp file.
2. Eliminates repetition between Mac and other platforms.
3. Breaks long "repack" actions out into separate files for greater readability.
4. Eliminates circular dependencies in the Aura shell, the Views components, and
the compositor when utilizing Chrome resources.
BUG=none
TEST=try bots run gyps and build correctly.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107967
Review URL: http://codereview.chromium.org/8425002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108466 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/chrome_resources.gyp')
-rw-r--r-- | chrome/chrome_resources.gyp | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/chrome/chrome_resources.gyp b/chrome/chrome_resources.gyp new file mode 100644 index 0000000..7c8692f --- /dev/null +++ b/chrome/chrome_resources.gyp @@ -0,0 +1,367 @@ +# Copyright (c) 2011 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': { + 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome', + 'repack_locales_cmd': ['python', 'tools/build/repack_locales.py'], + }, + 'targets': [ + { + 'target_name': 'chrome_extra_resources', + 'type': 'none', + 'dependencies': [ + '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:generate_devtools_grd', + ], + # These resources end up in resources.pak because they are resources + # used by internal pages. Putting them in a spearate pak file makes + # it easier for us to reference them internally. + 'actions': [ + { + 'action_name': 'component_extension_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/component_extension_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'net_internals_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/net_internals_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'options_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/options_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'quota_internals_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/quota_internals_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'shared_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/shared_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'sync_internals_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/sync_internals_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'workers_resources', + 'variables': { + 'grit_grd_file': 'browser/resources/workers_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'devtools_frontend_resources', + 'variables': { + 'grit_grd_file': + 'browser/debugger/frontend/devtools_frontend_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ] + }, + { + 'action_name': 'devtools_resources', + # This can't use ../build/grit_action.gypi because the grd file + # is generated a build time, so the trick of using grit_info to get + # the real inputs/outputs at GYP time isn't possible. + 'variables': { + 'grit_cmd': ['python', '../tools/grit/grit.py'], + 'grit_grd_file': '<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd', + }, + 'inputs': [ + '<(grit_grd_file)', + '<!@pymod_do_main(grit_info --inputs)', + ], + 'outputs': [ + '<(grit_out_dir)/grit/devtools_resources.h', + '<(grit_out_dir)/devtools_resources.pak', + '<(grit_out_dir)/grit/devtools_resources_map.cc', + '<(grit_out_dir)/grit/devtools_resources_map.h', + ], + 'action': ['<@(grit_cmd)', + '-i', '<(grit_grd_file)', 'build', + '-o', '<(grit_out_dir)', + '-D', 'SHARED_INTERMEDIATE_DIR=<(SHARED_INTERMEDIATE_DIR)', + '<@(grit_defines)' ], + 'message': 'Generating resources from <(grit_grd_file)', + }, + ], + '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. + 'target_name': 'chrome_resources', + 'type': 'none', + 'actions': [ + # Data resources. + { + 'action_name': 'browser_resources', + 'variables': { + 'grit_grd_file': 'browser/browser_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'common_resources', + 'variables': { + 'grit_grd_file': 'common/common_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'renderer_resources', + 'variables': { + 'grit_grd_file': 'renderer/renderer_resources.grd', + }, + 'includes': [ '../build/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. + 'target_name': 'chrome_strings', + 'type': 'none', + 'conditions': [ + ['OS=="win"', { + # HACK(nsylvain): We want to enforce a fake dependency on + # intaller_util_string. install_util depends on both + # chrome_strings and installer_util_strings, but for some reasons + # Incredibuild does not enforce it (most likely a bug). By changing + # the type and making sure we depend on installer_util_strings, it + # will always get built before installer_util. + 'type': 'dummy_executable', + 'dependencies': ['chrome.gyp:installer_util_strings'], + }], + ], + 'actions': [ + # Localizable resources. + { + 'action_name': 'locale_settings', + 'variables': { + 'grit_grd_file': 'app/resources/locale_settings.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'chromium_strings.grd', + 'variables': { + 'grit_grd_file': 'app/chromium_strings.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'generated_resources', + 'variables': { + 'grit_grd_file': 'app/generated_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'google_chrome_strings', + 'variables': { + 'grit_grd_file': 'app/google_chrome_strings.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + ], + 'includes': [ '../build/grit_target.gypi' ], + }, + { + '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_cros.grd', + }], + ['chromeos!=1', { + 'platform_locale_settings_grd': + 'app/resources/locale_settings_linux.grd', + }], + ], + },], + ['os_posix == 1 and OS != "mac" and OS != "linux"', { + 'platform_locale_settings_grd': + 'app/resources/locale_settings_linux.grd', + },], + ['OS=="mac"', { + 'platform_locale_settings_grd': + 'app/resources/locale_settings_mac.grd', + }], + ], # conditions + }, # variables + 'actions': [ + { + 'action_name': 'platform_locale_settings', + 'variables': { + 'grit_grd_file': '<(platform_locale_settings_grd)', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + ], + 'includes': [ '../build/grit_target.gypi' ], + }, + { + 'target_name': 'theme_resources', + 'type': 'none', + 'actions': [ + { + 'action_name': 'theme_resources', + 'variables': { + 'grit_grd_file': 'app/theme/theme_resources.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'theme_resources_large', + 'variables': { + 'grit_grd_file': 'app/theme/theme_resources_large.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + { + 'action_name': 'theme_resources_standard', + 'variables': { + 'grit_grd_file': 'app/theme/theme_resources_standard.grd', + }, + 'includes': [ '../build/grit_action.gypi' ], + }, + ], + 'includes': [ '../build/grit_target.gypi' ], + }, + { + 'target_name': 'packed_extra_resources', + 'type': 'none', + 'variables': { + 'repack_path': '../tools/grit/grit/format/repack.py', + }, + 'dependencies': [ + 'chrome_extra_resources', + ], + 'actions': [ + { + 'includes': ['chrome_repack_resources.gypi'] + }, + ], + 'conditions': [ + ['OS != "mac"', { + # 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' + ], + }, + ], + }] + ] + }, + { + 'target_name': 'packed_resources', + 'type': 'none', + 'variables': { + 'repack_path': '../tools/grit/grit/format/repack.py', + }, + 'dependencies': [ + # MSVS needs the dependencies explictly named, Make is able to + # derive the dependencies from the output files. + 'chrome_resources', + 'chrome_strings', + 'default_plugin/default_plugin.gyp:default_plugin_resources', + 'platform_locale_settings', + 'theme_resources', + '<(DEPTH)/net/net.gyp:net_resources', + '<(DEPTH)/ui/base/strings/ui_strings.gyp:ui_strings', + '<(DEPTH)/ui/ui.gyp:gfx_resources', + '<(DEPTH)/ui/ui.gyp:ui_resources', + '<(DEPTH)/ui/ui.gyp:ui_resources_large', + '<(DEPTH)/ui/ui.gyp:ui_resources_standard', + '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_resources', + '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_strings', + ], + 'actions': [ + { + 'includes': ['chrome_repack_chrome.gypi'] + }, + { + 'includes': ['chrome_repack_locales.gypi'] + }, + { + 'includes': ['chrome_repack_pseudo_locales.gypi'] + }, + ], + 'conditions': [ + ['OS != "mac"', { + # 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/chrome.pak' + ], + }, + { + 'destination': '<(PRODUCT_DIR)/locales', + 'files': [ + '<!@pymod_do_main(repack_locales -o -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(locales))' + ], + }, + { + 'destination': '<(PRODUCT_DIR)/pseudo_locales', + 'files': [ + '<!@pymod_do_main(repack_locales -o -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(pseudo_locales))' + ], + }, + ], + 'conditions': [ + ['branding=="Chrome"', { + 'copies': [ + { + # This location is for the Windows and Linux builds. For + # Windows, the chrome.release file ensures that these files + # are copied into the installer. Note that we have a separate + # section in chrome_dll.gyp to copy these files for Mac, as it + # needs to be dropped inside the framework. + 'destination': '<(PRODUCT_DIR)/default_apps', + 'files': ['<@(default_apps_list)'] + }, + ], + }], + ], # conditions + }], # end OS != "mac" + ], # conditions + }, + ], # targets +} |