Home | History | Annotate | Download | only in chrome
      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   'variables': {
      6     'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome',
      7     'about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/about_credits.html',
      8     'additional_modules_list_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/internal/additional_modules_list.txt',
      9     'omnibox_mojom_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/ui/webui/omnibox/omnibox.mojom.js',
     10   },
     11   'targets': [
     12     {
     13       'target_name': 'chrome_extra_resources',
     14       'type': 'none',
     15       # These resources end up in resources.pak because they are resources
     16       # used by internal pages.  Putting them in a separate pak file makes
     17       # it easier for us to reference them internally.
     18       'actions': [
     19         {
     20           'action_name': 'generate_memory_internals_resources',
     21           'variables': {
     22             'grit_grd_file': 'browser/resources/memory_internals_resources.grd',
     23           },
     24           'includes': [ '../build/grit_action.gypi' ],
     25         },
     26         {
     27           'action_name': 'generate_net_internals_resources',
     28           'variables': {
     29             'grit_grd_file': 'browser/resources/net_internals_resources.grd',
     30           },
     31           'includes': [ '../build/grit_action.gypi' ],
     32         },
     33         {
     34           'action_name': 'generate_invalidations_resources',
     35           'variables': {
     36             'grit_grd_file': 'browser/resources/invalidations_resources.grd',
     37             },
     38           'includes': ['../build/grit_action.gypi' ],
     39         },
     40         {
     41           'action_name': 'generate_password_manager_internals_resources',
     42           'variables': {
     43             'grit_grd_file': 'browser/resources/password_manager_internals_resources.grd',
     44           },
     45           'includes': [ '../build/grit_action.gypi' ],
     46         },
     47         {
     48           'action_name': 'generate_signin_internals_resources',
     49           'variables': {
     50             'grit_grd_file': 'browser/resources/signin_internals_resources.grd',
     51             },
     52           'includes': ['../build/grit_action.gypi' ],
     53         },
     54         {
     55           'action_name': 'generate_sync_internals_resources',
     56           'variables': {
     57             'grit_grd_file': 'browser/resources/sync_internals_resources.grd',
     58           },
     59           'includes': [ '../build/grit_action.gypi' ],
     60         },
     61         {
     62           'action_name': 'generate_translate_internals_resources',
     63           'variables': {
     64             'grit_grd_file': 'browser/resources/translate_internals_resources.grd',
     65           },
     66           'includes': [ '../build/grit_action.gypi' ],
     67         },
     68       ],
     69       'includes': [ '../build/grit_target.gypi' ],
     70       'conditions': [
     71         ['OS != "ios"', {
     72           'dependencies': [
     73             '../components/components_resources.gyp:components_resources',
     74             '../content/browser/devtools/devtools_resources.gyp:devtools_resources',
     75             '../content/browser/tracing/tracing_resources.gyp:tracing_resources',
     76           ],
     77           'actions': [
     78             {
     79               'action_name': 'generate_component_extension_resources',
     80               'variables': {
     81                 'grit_grd_file': 'browser/resources/component_extension_resources.grd',
     82               },
     83               'includes': [ '../build/grit_action.gypi' ],
     84             },
     85             {
     86               'action_name': 'generate_options_resources',
     87               'variables': {
     88                 'grit_grd_file': 'browser/resources/options_resources.grd',
     89               },
     90               'includes': [ '../build/grit_action.gypi' ],
     91             },
     92             {
     93               'action_name': 'generate_quota_internals_resources',
     94               'variables': {
     95                 'grit_grd_file': 'browser/resources/quota_internals_resources.grd',
     96               },
     97               'includes': [ '../build/grit_action.gypi' ],
     98             },
     99             {
    100               'action_name': 'generate_sync_file_system_internals_resources',
    101               'variables': {
    102                 'grit_grd_file': 'browser/resources/sync_file_system_internals_resources.grd',
    103               },
    104               'includes': [ '../build/grit_action.gypi' ],
    105             },
    106           ],
    107           'copies': [
    108             {
    109               'destination': '<(PRODUCT_DIR)/resources/extension/demo',
    110               'files': [
    111                 'browser/resources/extension_resource/demo/library.js',
    112               ],
    113             },
    114           ],
    115         }],
    116         ['chromeos==1 and disable_nacl==0 and disable_nacl_untrusted==0', {
    117           'conditions': [
    118             # TODO(dtseng): Remove use_chromevox_next once ChromeVox Next is ready for testing.
    119             ['use_chromevox_next==1', {
    120               'dependencies': [
    121                 'browser/resources/chromeos/chromevox2/chromevox.gyp:chromevox2',
    122               ],
    123             }, { # else use_chromevox_next == 0
    124               'dependencies': [
    125                 'browser/resources/chromeos/chromevox/chromevox.gyp:chromevox',
    126               ],
    127             }],
    128           ],
    129         }],
    130       ],
    131     },
    132     {
    133       # GN version: //chrome/browser:chrome_internal_resources_gen
    134       'target_name': 'chrome_internal_resources_gen',
    135       'type': 'none',
    136       'conditions': [
    137         ['branding=="Chrome"', {
    138           'actions': [
    139             {
    140               'action_name': 'generate_transform_additional_modules_list',
    141               'variables': {
    142                 'additional_modules_input_path':
    143                   'browser/internal/resources/additional_modules_list.input',
    144                 'additional_modules_py_path':
    145                   'browser/internal/transform_additional_modules_list.py',
    146               },
    147               'inputs': [
    148                 '<(additional_modules_input_path)',
    149               ],
    150               'outputs': [
    151                 '<(additional_modules_list_file)',
    152               ],
    153               'action': [
    154                 'python',
    155                 '<(additional_modules_py_path)',
    156                 '<(additional_modules_input_path)',
    157                 '<@(_outputs)',
    158               ],
    159               'message': 'Transforming additional modules list',
    160             }
    161           ],
    162         }],
    163       ],
    164     },
    165     {
    166       # TODO(mark): It would be better if each static library that needed
    167       # to run grit would list its own .grd files, but unfortunately some
    168       # of the static libraries currently have circular dependencies among
    169       # generated headers.
    170       #
    171       # GN version: //chrome:resources
    172       'target_name': 'chrome_resources',
    173       'type': 'none',
    174       'dependencies': [
    175         'about_credits',
    176         'chrome_internal_resources_gen',
    177         'chrome_web_ui_mojo_bindings.gyp:web_ui_mojo_bindings',
    178       ],
    179       'actions': [
    180         {
    181           # GN version: //chrome/browser:resources
    182           'action_name': 'generate_browser_resources',
    183           'variables': {
    184             'grit_grd_file': 'browser/browser_resources.grd',
    185             'grit_additional_defines': [
    186               '-E', 'about_credits_file=<(about_credits_file)',
    187               '-E', 'additional_modules_list_file=<(additional_modules_list_file)',
    188               '-E', 'omnibox_mojom_file=<(omnibox_mojom_file)',
    189             ],
    190           },
    191           'includes': [ '../build/grit_action.gypi' ],
    192         },
    193         {
    194           # GN version: //chrome/common:resources
    195           'action_name': 'generate_common_resources',
    196           'variables': {
    197             'grit_grd_file': 'common/common_resources.grd',
    198           },
    199           'includes': [ '../build/grit_action.gypi' ],
    200         },
    201         {
    202           # GN version: //chrome/renderer:resources
    203           'action_name': 'generate_renderer_resources',
    204           'variables': {
    205             'grit_grd_file': 'renderer/resources/renderer_resources.grd',
    206           },
    207           'includes': [ '../build/grit_action.gypi' ],
    208         },
    209       ],
    210       'conditions': [
    211         ['enable_extensions==1', {
    212           'actions': [
    213             {
    214               # GN version: //chrome/common:extensions_api_resources
    215               'action_name': 'generate_extensions_api_resources',
    216               'variables': {
    217                 'grit_grd_file': 'common/extensions_api_resources.grd',
    218               },
    219               'includes': [ '../build/grit_action.gypi' ],
    220             }
    221           ],
    222         }],
    223       ],
    224       'includes': [ '../build/grit_target.gypi' ],
    225     },
    226     {
    227       # TODO(mark): It would be better if each static library that needed
    228       # to run grit would list its own .grd files, but unfortunately some
    229       # of the static libraries currently have circular dependencies among
    230       # generated headers.
    231       #
    232       # GN version: //chrome:strings
    233       'target_name': 'chrome_strings',
    234       'type': 'none',
    235       'actions': [
    236         {
    237           # GN version: //chrome/app/resources:locale_settings
    238           'action_name': 'generate_locale_settings',
    239           'variables': {
    240             'grit_grd_file': 'app/resources/locale_settings.grd',
    241           },
    242           'includes': [ '../build/grit_action.gypi' ],
    243         },
    244         {
    245           # GN version: //chrome/app:chromium_strings
    246           'action_name': 'generate_chromium_strings',
    247           'variables': {
    248             'grit_grd_file': 'app/chromium_strings.grd',
    249           },
    250           'includes': [ '../build/grit_action.gypi' ],
    251         },
    252         {
    253           # GN version: //chrome/app:generated_resources
    254           'action_name': 'generate_generated_resources',
    255           'variables': {
    256             'grit_grd_file': 'app/generated_resources.grd',
    257           },
    258           'includes': [ '../build/grit_action.gypi' ],
    259         },
    260         {
    261           # GN version: //chrome/app:google_chrome_strings
    262           'action_name': 'generate_google_chrome_strings',
    263           'variables': {
    264             'grit_grd_file': 'app/google_chrome_strings.grd',
    265           },
    266           'includes': [ '../build/grit_action.gypi' ],
    267         },
    268       ],
    269       'includes': [ '../build/grit_target.gypi' ],
    270     },
    271     {
    272       'target_name': 'chrome_strings_map',
    273       'type': 'none',
    274       'dependencies': [ 'chrome_strings', ],
    275       'actions': [
    276         {
    277           'action_name': 'generate_resources_map',
    278           'inputs': [
    279             '<(grit_out_dir)/grit/generated_resources.h'
    280           ],
    281           'outputs': [
    282             '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/generated_resources_map.cc',
    283           ],
    284           'action': [
    285             'python',
    286             'browser/metrics/variations/generate_resources_map.py',
    287             '<(grit_out_dir)/grit/generated_resources.h',
    288             '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/generated_resources_map.cc'
    289           ],
    290           'message': 'Generating generated resources map.',
    291         }
    292       ],
    293     },
    294     {
    295       'target_name': 'platform_locale_settings',
    296       'type': 'none',
    297       'variables': {
    298         'conditions': [
    299           ['OS=="win"', {
    300             'platform_locale_settings_grd':
    301                 'app/resources/locale_settings_win.grd',
    302           },],
    303           ['OS=="linux"', {
    304             'conditions': [
    305               ['chromeos==1', {
    306                 'conditions': [
    307                   ['branding=="Chrome"', {
    308                     'platform_locale_settings_grd':
    309                         'app/resources/locale_settings_google_chromeos.grd',
    310                   }, {  # branding!=Chrome
    311                     'platform_locale_settings_grd':
    312                         'app/resources/locale_settings_chromiumos.grd',
    313                   }],
    314                 ]
    315               }, {  # chromeos==0
    316                 'platform_locale_settings_grd':
    317                     'app/resources/locale_settings_linux.grd',
    318               }],
    319             ],
    320           },],
    321           ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "linux"', {
    322             'platform_locale_settings_grd':
    323                 'app/resources/locale_settings_linux.grd',
    324           },],
    325           ['OS == "mac" or OS == "ios"', {
    326             'platform_locale_settings_grd':
    327                 'app/resources/locale_settings_mac.grd',
    328           }],
    329         ],  # conditions
    330       },  # variables
    331       'actions': [
    332         {
    333           'action_name': 'generate_platform_locale_settings',
    334           'variables': {
    335             'grit_grd_file': '<(platform_locale_settings_grd)',
    336           },
    337           'includes': [ '../build/grit_action.gypi' ],
    338         },
    339       ],
    340       'includes': [ '../build/grit_target.gypi' ],
    341     },
    342     {
    343       # GN version: //chrome/app/theme:theme_resources
    344       'target_name': 'theme_resources',
    345       'type': 'none',
    346       'dependencies': [
    347         '../ui/resources/ui_resources.gyp:ui_resources',
    348         'chrome_unscaled_resources',
    349       ],
    350       'actions': [
    351         {
    352           'action_name': 'generate_theme_resources',
    353           'variables': {
    354             'grit_grd_file': 'app/theme/theme_resources.grd',
    355           },
    356           'includes': [ '../build/grit_action.gypi' ],
    357         },
    358       ],
    359       'includes': [ '../build/grit_target.gypi' ],
    360     },
    361     {
    362       'target_name': 'packed_extra_resources',
    363       'type': 'none',
    364       'dependencies': [
    365         'chrome_extra_resources',
    366         'packed_resources',
    367       ],
    368       'actions': [
    369         {
    370           'includes': ['chrome_repack_resources.gypi']
    371         },
    372       ],
    373       'conditions': [
    374         ['OS != "mac" and OS != "ios"', {
    375           # We'll install the resource files to the product directory.  The Mac
    376           # copies the results over as bundle resources in its own special way.
    377           'copies': [
    378             {
    379               'destination': '<(PRODUCT_DIR)',
    380               'files': [
    381                 '<(SHARED_INTERMEDIATE_DIR)/repack/resources.pak'
    382               ],
    383             },
    384           ],
    385         }],
    386       ],
    387     },
    388     {
    389       'target_name': 'packed_resources',
    390       'type': 'none',
    391       'dependencies': [
    392         # MSVS needs the dependencies explictly named, Make is able to
    393         # derive the dependencies from the output files.
    394         'chrome_resources',
    395         'chrome_strings',
    396         'platform_locale_settings',
    397         'theme_resources',
    398         '<(DEPTH)/components/components_strings.gyp:components_strings',
    399         '<(DEPTH)/net/net.gyp:net_resources',
    400         '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources',
    401         '<(DEPTH)/ui/strings/ui_strings.gyp:ui_strings',
    402       ],
    403       'actions': [
    404         {
    405           'action_name': 'repack_locales_pack',
    406           'variables': {
    407             'pak_locales': '<(locales)',
    408           },
    409           'includes': ['chrome_repack_locales.gypi']
    410         },
    411         {
    412           'action_name': 'repack_pseudo_locales_pack',
    413           'variables': {
    414             'pak_locales': '<(pseudo_locales)',
    415           },
    416           'includes': ['chrome_repack_locales.gypi']
    417         },
    418         {
    419           'includes': ['chrome_repack_chrome_100_percent.gypi']
    420         },
    421         {
    422           'includes': ['chrome_repack_chrome_200_percent.gypi']
    423         },
    424       ],
    425       'conditions': [
    426         ['OS != "ios"', {
    427           'dependencies': [
    428             '<(DEPTH)/content/content_resources.gyp:content_resources',
    429             '<(DEPTH)/device/bluetooth/bluetooth_strings.gyp:device_bluetooth_strings',
    430             '<(DEPTH)/extensions/extensions_strings.gyp:extensions_strings',
    431             '<(DEPTH)/webkit/webkit_resources.gyp:webkit_resources',
    432             '<(DEPTH)/webkit/webkit_resources.gyp:webkit_strings',
    433           ],
    434         }],
    435         ['use_ash==1', {
    436           'dependencies': [
    437              '<(DEPTH)/ash/ash_resources.gyp:ash_resources',
    438              '<(DEPTH)/ash/ash_strings.gyp:ash_strings',
    439           ],
    440         }],
    441         ['enable_autofill_dialog==1 and OS!="android"', {
    442           'dependencies': [
    443             '<(DEPTH)/third_party/libaddressinput/libaddressinput.gyp:libaddressinput_strings',
    444           ],
    445         }],
    446         ['OS != "mac" and OS != "ios"', {
    447           # Copy pak files to the product directory. These files will be picked
    448           # up by the following installer scripts:
    449           #   - Windows: chrome/installer/mini_installer/chrome.release
    450           #   - Linux: chrome/installer/linux/internal/common/installer.include
    451           # Ensure that the above scripts are updated when adding or removing
    452           # pak files.
    453           # Copying files to the product directory is not needed on the Mac
    454           # since the framework build phase will copy them into the framework
    455           # bundle directly.
    456           'copies': [
    457             {
    458               'destination': '<(PRODUCT_DIR)',
    459               'files': [
    460                 '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_100_percent.pak'
    461               ],
    462             },
    463             {
    464               'destination': '<(PRODUCT_DIR)/locales',
    465               'files': [
    466                 '<!@pymod_do_main(repack_locales -o -p <(OS) -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(locales))'
    467               ],
    468             },
    469             {
    470               'destination': '<(PRODUCT_DIR)/pseudo_locales',
    471               'files': [
    472                 '<!@pymod_do_main(repack_locales -o -p <(OS) -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(pseudo_locales))'
    473               ],
    474             },
    475           ],
    476           'conditions': [
    477             ['branding=="Chrome"', {
    478               'copies': [
    479                 {
    480                   # This location is for the Windows and Linux builds. For
    481                   # Windows, the chrome.release file ensures that these files
    482                   # are copied into the installer. Note that we have a separate
    483                   # section in chrome_dll.gyp to copy these files for Mac, as it
    484                   # needs to be dropped inside the framework.
    485                   'destination': '<(PRODUCT_DIR)/default_apps',
    486                   'files': ['<@(default_apps_list)']
    487                 },
    488               ],
    489             }],
    490             ['enable_hidpi == 1', {
    491               'copies': [
    492                 {
    493                   'destination': '<(PRODUCT_DIR)',
    494                   'files': [
    495                     '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_200_percent.pak',
    496                   ],
    497                 },
    498               ],
    499             }],
    500           ], # conditions
    501         }], # end OS != "mac" and OS != "ios"
    502       ], # conditions
    503     },
    504     {
    505       'target_name': 'chrome_unscaled_resources',
    506       'type': 'none',
    507       'actions': [
    508         {
    509           'action_name': 'generate_chrome_unscaled_resources',
    510           'variables': {
    511             'grit_grd_file': 'app/theme/chrome_unscaled_resources.grd',
    512           },
    513           'includes': [ '../build/grit_action.gypi' ],
    514         },
    515       ],
    516       'includes': [ '../build/grit_target.gypi' ],
    517     },
    518     {
    519       # GN version: //chrome/browser:about_credits
    520       'target_name': 'about_credits',
    521       'type': 'none',
    522       'actions': [
    523         {
    524           'variables': {
    525             'generator_path': '../tools/licenses.py',
    526           },
    527           'action_name': 'generate_about_credits',
    528           'inputs': [
    529             # TODO(phajdan.jr): make licenses.py print inputs too.
    530             '<(generator_path)',
    531           ],
    532           'outputs': [
    533             '<(about_credits_file)',
    534           ],
    535           'hard_dependency': 1,
    536           'action': ['python',
    537                      '<(generator_path)',
    538                      'credits',
    539                      '<(about_credits_file)',
    540           ],
    541           'message': 'Generating about:credits',
    542         },
    543       ],
    544     },
    545   ], # targets
    546 }
    547