Home | History | Annotate | Download | only in chromevox
      1 # Copyright 2014 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   'conditions': [
      7     ['chromeos==1', {
      8       'variables': {
      9         # Whether to compress the 4 main ChromeVox scripts.  Applicable if
     10         # use_migrated_chromevox is true.
     11         'chromevox_compress_js%': '1',
     12         'background_script_loader_file': 'chromevox/background/loader.js',
     13         'content_script_loader_file': 'chromevox/injected/loader.js',
     14         'options_script_loader_file': 'chromevox/background/options_loader.js',
     15         'kbexplorer_loader_file': 'chromevox/background/kbexplorer_loader.js',
     16       },
     17       'includes': [
     18         'chromevox_tests.gypi',
     19         'common.gypi',
     20       ],
     21       'targets': [
     22         {
     23           'target_name': 'chromevox',
     24           'type': 'none',
     25           'dependencies': [
     26             'chromevox_resources',
     27             'chromevox_manifest',
     28             'chromevox_guest_manifest',
     29             'chromevox2',
     30           ],
     31         },
     32         {
     33           'target_name': 'chromevox_resources',
     34           'type': 'none',
     35           'dependencies': [
     36             'chromevox_assets',
     37             'chromevox_static_files',
     38             'chromevox_strings',
     39             'chromevox_uncompiled_js_files',
     40             '<(chromevox_third_party_dir)/chromevox.gyp:chromevox_third_party_resources',
     41             '../braille_ime/braille_ime.gyp:braille_ime_manifest',
     42           ],
     43           'conditions': [
     44             ['disable_nacl==0 and disable_nacl_untrusted==0', {
     45               'dependencies': [
     46                 '<(DEPTH)/third_party/liblouis/liblouis_nacl.gyp:liblouis_nacl_wrapper_nacl',
     47               ],
     48             }],
     49             ['use_migrated_chromevox==1 and chromevox_compress_js==1', {
     50               'dependencies': [
     51                 'chromevox_content_script',
     52                 'chromevox_background_script',
     53                 'chromevox_options_script',
     54                 'chromevox_kbexplorer_script',
     55               ],
     56             }],
     57             ['use_migrated_chromevox==1 and chromevox_compress_js==0', {
     58               'dependencies': [
     59                 'chromevox_copied_scripts',
     60               ],
     61             }],
     62           ],
     63         },
     64         {
     65           'target_name': 'chromevox_assets',
     66           'type': 'none',
     67           'includes': [
     68             'chromevox_assets.gypi',
     69           ],
     70         },
     71         {
     72           'target_name': 'chromevox_manifest',
     73           'type': 'none',
     74           'variables': {
     75             'output_manifest_path': '<(chromevox_dest_dir)/manifest.json',
     76           },
     77           'includes': [ 'generate_manifest.gypi', ],
     78         },
     79         {
     80           'target_name': 'chromevox_guest_manifest',
     81           'type': 'none',
     82           'variables': {
     83             'output_manifest_path': '<(chromevox_dest_dir)/manifest_guest.json',
     84             'is_guest_manifest': 1,
     85           },
     86           'includes': [ 'generate_manifest.gypi', ],
     87         },
     88         {
     89           'target_name': 'chromevox_static_files',
     90           'type': 'none',
     91           'copies': [
     92             {
     93               'destination': '<(chromevox_dest_dir)/chromevox/background',
     94               'files': [
     95                 'chromevox/background/background.html',
     96                 'chromevox/background/kbexplorer.html',
     97                 'chromevox/background/options.html',
     98               ],
     99             },
    100           ],
    101         },
    102         {
    103           # JavaScript files that are always directly included into the
    104           # destination directory.
    105           'target_name': 'chromevox_uncompiled_js_files',
    106           'type': 'none',
    107           'copies': [
    108             {
    109               'destination': '<(chromevox_dest_dir)/closure',
    110               'files': [
    111                 'closure/closure_preinit.js',
    112               ],
    113               'conditions': [
    114                 ['use_migrated_chromevox==0 or chromevox_compress_js==1', {
    115                   'files': [ '<(closure_goog_dir)/base.js' ],
    116                 }],
    117               ]
    118             },
    119             {
    120               'destination': '<(chromevox_dest_dir)/chromevox/injected',
    121               'files': [
    122                 'chromevox/injected/api.js',
    123                 'chromevox/injected/api_util.js',
    124               ],
    125             },
    126           ],
    127         },
    128         {
    129           'target_name': 'chromevox_strings',
    130           'type': 'none',
    131           'actions': [
    132             {
    133               'action_name': 'chromevox_strings',
    134               'variables': {
    135                 'grit_grd_file': 'strings/chromevox_strings.grd',
    136                 'grit_out_dir': '<(chromevox_dest_dir)',
    137                 # We don't generate any RC files, so no resource_ds file is needed.
    138                 'grit_resource_ids': '',
    139               },
    140               'includes': [ '../../../../../build/grit_action.gypi' ],
    141             },
    142           ],
    143         },
    144         {
    145           'target_name': 'chromevox2',
    146           'type': 'none',
    147           'dependencies': [
    148             'chromevox2_copied_scripts',
    149             'chromevox2_deps',
    150             'chromevox2_manifest',
    151             'chromevox2_guest_manifest',
    152             'chromevox2_resources',
    153           ],
    154         },
    155         {
    156           'target_name': 'chromevox2_copied_scripts',
    157           'type': 'none',
    158           'variables': {
    159             'dest_dir': '<(chromevox_dest_dir)',
    160           },
    161           'sources': [
    162             'cvox2/background/loader.js',
    163           ],
    164           'includes': [ 'copy_js.gypi', ],
    165         },
    166         {
    167           'target_name': 'chromevox2_deps',
    168           'type': 'none',
    169           'variables': {
    170             'deps_js_output_file': '<(chromevox_dest_dir)/deps.js',
    171           },
    172           'sources': [
    173             'cvox2/background/loader.js',
    174           ],
    175           'includes': ['generate_deps.gypi'],
    176         },
    177         {
    178           'target_name': 'chromevox2_resources',
    179           'type': 'none',
    180           'copies': [
    181             {
    182               'destination': '<(PRODUCT_DIR)/resources/chromeos/chromevox/cvox2/background',
    183               'files': [
    184                 'cvox2/background/background.html',
    185               ],
    186             },
    187           ],
    188         },
    189         {
    190           'target_name': 'chromevox2_manifest',
    191           'type': 'none',
    192           'variables': {
    193             'output_manifest_path': '<(chromevox_dest_dir)/manifest_next.json',
    194 'use_chromevox_next': 1,
    195           },
    196           'includes': [ 'generate_manifest.gypi', ],
    197         },
    198         {
    199           'target_name': 'chromevox2_guest_manifest',
    200           'type': 'none',
    201           'variables': {
    202             'output_manifest_path': '<(chromevox_dest_dir)/manifest_next_guest.json',
    203             'is_guest_manifest': 1,
    204             'use_chromevox_next': 1,
    205           },
    206           'includes': [ 'generate_manifest.gypi', ],
    207         },
    208       ],
    209       'conditions': [
    210         ['use_migrated_chromevox==1 and chromevox_compress_js==1', {
    211           'targets': [
    212             {
    213               'target_name': 'chromevox_content_script',
    214               'type': 'none',
    215               'variables': {
    216                 'output_file': '<(chromevox_dest_dir)/chromeVoxChromePageScript.js',
    217               },
    218               'sources': [ '<(content_script_loader_file)' ],
    219               'includes': [ 'compress_js.gypi', ],
    220             },
    221             {
    222               'target_name': 'chromevox_background_script',
    223               'type': 'none',
    224               'variables': {
    225                 'output_file': '<(chromevox_dest_dir)/chromeVoxChromeBackgroundScript.js',
    226               },
    227               'sources': [ '<(background_script_loader_file)' ],
    228               'includes': [ 'compress_js.gypi', ],
    229             },
    230             {
    231               'target_name': 'chromevox_options_script',
    232               'type': 'none',
    233               'variables': {
    234                 'output_file': '<(chromevox_dest_dir)/chromeVoxChromeOptionsScript.js',
    235               },
    236               'sources': [ '<(options_script_loader_file)' ],
    237               'includes': [ 'compress_js.gypi', ],
    238             },
    239             {
    240               'target_name': 'chromevox_kbexplorer_script',
    241               'type': 'none',
    242               'variables': {
    243                 'output_file': '<(chromevox_dest_dir)/chromeVoxKbExplorerScript.js',
    244               },
    245               'sources': [ '<(kbexplorer_loader_file)' ],
    246               'includes': [ 'compress_js.gypi', ],
    247             },
    248           ],
    249         },
    250         ],
    251         ['use_migrated_chromevox==1 and chromevox_compress_js==0', {
    252           'targets': [
    253             {
    254               'target_name': 'chromevox_copied_scripts',
    255               'type': 'none',
    256               'variables': {
    257                 'dest_dir': '<(chromevox_dest_dir)',
    258               },
    259               'sources': [
    260                 '<(background_script_loader_file)',
    261                 '<(content_script_loader_file)',
    262                 '<(kbexplorer_loader_file)',
    263                 '<(options_script_loader_file)',
    264               ],
    265               'includes': [ 'copy_js.gypi', ],
    266             },
    267           ],
    268         }],
    269       ],
    270     }],
    271   ],
    272 }
    273