Home | History | Annotate | Download | only in devtools
      1 #
      2 # Copyright (C) 2013 Google Inc. All rights reserved.
      3 #
      4 # Redistribution and use in source and binary forms, with or without
      5 # modification, are permitted provided that the following conditions are
      6 # met:
      7 #
      8 #         * Redistributions of source code must retain the above copyright
      9 # notice, this list of conditions and the following disclaimer.
     10 #         * Redistributions in binary form must reproduce the above
     11 # copyright notice, this list of conditions and the following disclaimer
     12 # in the documentation and/or other materials provided with the
     13 # distribution.
     14 #         * Neither the name of Google Inc. nor the names of its
     15 # contributors may be used to endorse or promote products derived from
     16 # this software without specific prior written permission.
     17 #
     18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29 #
     30 
     31 {
     32     'includes': [
     33       'devtools.gypi',
     34     ],
     35     'targets': [
     36         {
     37             'target_name': 'devtools_frontend_resources',
     38             'type': 'none',
     39             'dependencies': [
     40                 'devtools_html',
     41                 'toolbox_html',
     42                 'supported_css_properties',
     43                 'frontend_protocol_sources',
     44                 'build_applications',
     45             ],
     46             'conditions': [
     47                 ['debug_devtools==0', {
     48                     'dependencies': [
     49                         'copy_standalone_css',
     50                         'concatenated_devtools_css',
     51                         'concatenated_toolbox_css',
     52                     ],
     53                 }],
     54             ],
     55             'copies': [
     56                 {
     57                     'destination': '<(PRODUCT_DIR)/resources/inspector/Images',
     58                     'files': [
     59                         '<@(devtools_image_files)',
     60                     ],
     61                 },
     62             ],
     63         },
     64         {
     65             'target_name': 'devtools_html',
     66             'type': 'none',
     67             'sources': ['front_end/devtools.html'],
     68             'actions': [{
     69                 'action_name': 'devtools_html',
     70                 'script_name': 'scripts/generate_devtools_html.py',
     71                 'input_page': 'front_end/devtools.html',
     72                 'inputs': [
     73                     '<@(_script_name)',
     74                     '<@(_input_page)',
     75                 ],
     76                 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
     77                 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)'],
     78             }],
     79         },
     80         {
     81             'target_name': 'toolbox_html',
     82             'type': 'none',
     83             'sources': ['front_end/toolbox.html'],
     84             'actions': [{
     85                 'action_name': 'toolbox_html',
     86                 'script_name': 'scripts/generate_devtools_html.py',
     87                 'input_page': 'front_end/toolbox.html',
     88                 'inputs': [
     89                     '<@(_script_name)',
     90                     '<@(_input_page)',
     91                 ],
     92                 'outputs': ['<(PRODUCT_DIR)/resources/inspector/toolbox.html'],
     93                 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)'],
     94             }],
     95         },
     96         {
     97             'target_name': 'devtools_extension_api',
     98             'type': 'none',
     99             'actions': [{
    100                 'action_name': 'devtools_extension_api',
    101                 'script_name': 'scripts/generate_devtools_extension_api.py',
    102                 'inputs': [
    103                     '<@(_script_name)',
    104                     '<@(devtools_extension_api_files)',
    105                 ],
    106                 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js'],
    107                 'action': ['python', '<@(_script_name)', '<@(_outputs)', '<@(devtools_extension_api_files)'],
    108             }],
    109         },
    110         {
    111             'target_name': 'generate_devtools_grd',
    112             'type': 'none',
    113             'dependencies': [
    114                 'devtools_html',
    115                 'toolbox_html',
    116                 'devtools_extension_api',
    117                 'devtools_frontend_resources',
    118             ],
    119             'conditions': [
    120                 ['debug_devtools==0', {
    121                     'actions': [{
    122                         'action_name': 'generate_devtools_grd',
    123                         'script_name': 'scripts/generate_devtools_grd.py',
    124                         'relative_path_dirs': [
    125                             '<(PRODUCT_DIR)/resources/inspector',
    126                             'front_end'
    127                         ],
    128                         'input_pages': [
    129                             '<(PRODUCT_DIR)/resources/inspector/devtools.css',
    130                             '<(PRODUCT_DIR)/resources/inspector/devtools.html',
    131                             '<(PRODUCT_DIR)/resources/inspector/devtools.js',
    132                             '<(PRODUCT_DIR)/resources/inspector/toolbox.css',
    133                             '<(PRODUCT_DIR)/resources/inspector/toolbox.html',
    134                             '<(PRODUCT_DIR)/resources/inspector/toolbox.js',
    135                             '<(PRODUCT_DIR)/resources/inspector/audits_module.js',
    136                             '<(PRODUCT_DIR)/resources/inspector/console_module.js',
    137                             '<(PRODUCT_DIR)/resources/inspector/devices_module.js',
    138                             '<(PRODUCT_DIR)/resources/inspector/documentation_module.js',
    139                             '<(PRODUCT_DIR)/resources/inspector/elements_module.js',
    140                             '<(PRODUCT_DIR)/resources/inspector/extensions_module.js',
    141                             '<(PRODUCT_DIR)/resources/inspector/heap_snapshot_worker_module.js',
    142                             '<(PRODUCT_DIR)/resources/inspector/layers_module.js',
    143                             '<(PRODUCT_DIR)/resources/inspector/network_module.js',
    144                             '<(PRODUCT_DIR)/resources/inspector/profiler_module.js',
    145                             '<(PRODUCT_DIR)/resources/inspector/promises_module.js',
    146                             '<(PRODUCT_DIR)/resources/inspector/resources_module.js',
    147                             '<(PRODUCT_DIR)/resources/inspector/script_formatter_worker_module.js',
    148                             '<(PRODUCT_DIR)/resources/inspector/settings_module.js',
    149                             '<(PRODUCT_DIR)/resources/inspector/source_frame_module.js',
    150                             '<(PRODUCT_DIR)/resources/inspector/sources_module.js',
    151                             '<(PRODUCT_DIR)/resources/inspector/temp_storage_shared_worker_module.js',
    152                             '<(PRODUCT_DIR)/resources/inspector/timeline_module.js',
    153                             '<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js',
    154                             '<@(devtools_standalone_files)',
    155                             '<@(devtools_cm_css_files)',
    156                         ],
    157                         'images': [
    158                             '<@(devtools_image_files)',
    159                         ],
    160                         'inputs': [
    161                             '<@(_script_name)',
    162                             '<@(_input_pages)',
    163                             '<@(_images)',
    164                         ],
    165                         'images_path': [
    166                             'front_end/Images',
    167                         ],
    168                         'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
    169                         'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--relative_path_dirs', '<@(_relative_path_dirs)', '--images', '<@(_images_path)', '--output', '<@(_outputs)'],
    170                     }],
    171                 },
    172                 {
    173                     # If we're not concatenating devtools files, we want to
    174                     # run after the original files have been copied to
    175                     # <(PRODUCT_DIR)/resources/inspector.
    176                     'dependencies': ['devtools_frontend_resources'],
    177                     'actions': [{
    178                         'action_name': 'generate_devtools_grd',
    179                         'script_name': 'scripts/generate_devtools_grd.py',
    180                         'relative_path_dirs': [
    181                             'front_end',
    182                             '<(PRODUCT_DIR)/resources/inspector',
    183                         ],
    184                         'input_pages': [
    185                             '<@(all_devtools_files)',
    186                             'front_end/Runtime.js',
    187                             '<(PRODUCT_DIR)/resources/inspector/InspectorBackendCommands.js',
    188                             '<(PRODUCT_DIR)/resources/inspector/SupportedCSSProperties.js',
    189                             '<(PRODUCT_DIR)/resources/inspector/devtools.html',
    190                             '<(PRODUCT_DIR)/resources/inspector/toolbox.html',
    191                         ],
    192                         'images': [
    193                             '<@(devtools_image_files)',
    194                         ],
    195                         'inputs': [
    196                             '<@(_script_name)',
    197                             '<@(_input_pages)',
    198                             '<@(_images)',
    199                         ],
    200                         'images_path': [
    201                             'front_end/Images',
    202                         ],
    203                         # Note that other files are put under /devtools directory, together with declared devtools_resources.grd
    204                         'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
    205                         'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--relative_path_dirs', '<@(_relative_path_dirs)', '--images', '<@(_images_path)', '--output', '<@(_outputs)'],
    206                     }],
    207                 }],
    208             ],
    209         },
    210         {
    211           'target_name': 'frontend_protocol_sources',
    212           'type': 'none',
    213           'actions': [
    214             {
    215               'action_name': 'generateInspectorProtocolFrontendSources',
    216               'inputs': [
    217                 # The python script in action below.
    218                 'scripts/CodeGeneratorFrontend.py',
    219                 # Input file for the script.
    220                 'protocol.json',
    221               ],
    222               'outputs': [
    223                 '<(PRODUCT_DIR)/resources/inspector/InspectorBackendCommands.js',
    224               ],
    225               'action': [
    226                 'python',
    227                 'scripts/CodeGeneratorFrontend.py',
    228                 'protocol.json',
    229                 '--output_js_dir', '<(PRODUCT_DIR)/resources/inspector/',
    230               ],
    231               'message': 'Generating Inspector protocol frontend sources from protocol.json',
    232             },
    233           ]
    234         },
    235         {
    236           'target_name': 'supported_css_properties',
    237           'type': 'none',
    238           'actions': [
    239             {
    240               'action_name': 'generateSupportedCSSProperties',
    241               'inputs': [
    242                 # The python script in action below.
    243                 'scripts/generate_supported_css.py',
    244                 # Input files for the script.
    245                 '../core/css/CSSProperties.in',
    246               ],
    247               'outputs': [
    248                 '<(PRODUCT_DIR)/resources/inspector/SupportedCSSProperties.js',
    249               ],
    250               'action': [
    251                 'python',
    252                 '<@(_inputs)',
    253                 '<@(_outputs)',
    254               ],
    255               'message': 'Generating supported CSS properties for front end',
    256             },
    257           ]
    258         },
    259 
    260         # Frontend applications and modules.
    261         {
    262             'target_name': 'build_applications',
    263             'type': 'none',
    264             'dependencies': [
    265                 'build_audits_module',
    266                 'build_console_module',
    267                 'build_devices_module',
    268                 'build_documentation_module',
    269                 'build_elements_module',
    270                 'build_extensions_module',
    271                 'build_heap_snapshot_worker_module',
    272                 'build_layers_module',
    273                 'build_network_module',
    274                 'build_profiler_module',
    275                 'build_promises_module',
    276                 'build_resources_module',
    277                 'build_script_formatter_worker_module',
    278                 'build_settings_module',
    279                 'build_source_frame_module',
    280                 'build_sources_module',
    281                 'build_temp_storage_shared_worker_module',
    282                 'build_timeline_module',
    283             ],
    284             'conditions': [
    285                 ['debug_devtools==0', { # Release
    286                     'dependencies': [
    287                         'devtools_html',
    288                         'toolbox_html',
    289                         'supported_css_properties',
    290                         'frontend_protocol_sources',
    291                         'concatenated_module_descriptors',
    292                     ],
    293                     'actions': [{
    294                         'action_name': 'build_applications',
    295                         'script_name': 'scripts/build_applications.py',
    296                         'helper_scripts': [
    297                             'scripts/modular_build.py',
    298                             'scripts/concatenate_application_code.py',
    299                         ],
    300                         'app_descriptor_names': [
    301                             'front_end/devtools.json',
    302                             'front_end/toolbox.json',
    303                         ],
    304                         'app_loader_names': [
    305                             'front_end/devtools.js',
    306                             'front_end/toolbox.js',
    307                         ],
    308                         'inputs': [
    309                             '<@(_script_name)',
    310                             '<@(_helper_scripts)',
    311                             '<@(_app_descriptor_names)',
    312                             '<@(_app_loader_names)',
    313                             '<@(devtools_core_files)',
    314                             '<@(devtools_module_json_files)',
    315                             '<(PRODUCT_DIR)/resources/inspector/Runtime.js',
    316                             '<(PRODUCT_DIR)/resources/inspector/InspectorBackendCommands.js',
    317                             '<(PRODUCT_DIR)/resources/inspector/SupportedCSSProperties.js',
    318                         ],
    319                         'output_path': '<(PRODUCT_DIR)/resources/inspector/',
    320                         'outputs': [
    321                             '<(_output_path)/devtools.js',
    322                             '<(_output_path)/toolbox.js',
    323                             '<(_output_path)/heap_snapshot_worker_module.js',
    324                             '<(_output_path)/temp_storage_shared_worker_module.js',
    325                             '<(_output_path)/script_formatter_worker_module.js',
    326                         ],
    327                         'action': ['python', '<@(_script_name)', 'devtools', 'toolbox', '--input_path', 'front_end', '--output_path', '<@(_output_path)', '--debug', '<@(debug_devtools)'],
    328                     }]
    329                 },
    330                 { # Debug
    331                   # Copy Runtime.js and all core modules of all applications here.
    332                     'app_target': '<(PRODUCT_DIR)/resources/inspector',
    333                     'copies': [
    334                         {
    335                             'destination': '<(_app_target)',
    336                             'files': [
    337                                 '<@(devtools_core_base_files)',
    338                                 'front_end/Runtime.js',
    339                             ],
    340                         },
    341                         {
    342                             'destination': '<(_app_target)/common',
    343                             'files': [
    344                                 '<@(devtools_common_js_files)',
    345                                 'front_end/common/module.json',
    346                             ],
    347                         },
    348                         {
    349                             'destination': '<(_app_target)/components',
    350                             'files': [
    351                                 '<@(devtools_components_js_files)',
    352                                 'front_end/components/module.json',
    353                             ],
    354                         },
    355                         {
    356                             'destination': '<(_app_target)/sdk',
    357                             'files': [
    358                                 '<@(devtools_sdk_js_files)',
    359                                 'front_end/sdk/module.json',
    360                             ],
    361                         },
    362                         {
    363                             'destination': '<(_app_target)/workspace',
    364                             'files': [
    365                                 '<@(devtools_workspace_js_files)',
    366                                 'front_end/workspace/module.json',
    367                             ],
    368                         },
    369                         {
    370                             'destination': '<(_app_target)/bindings',
    371                             'files': [
    372                                 '<@(devtools_bindings_js_files)',
    373                                 'front_end/bindings/module.json',
    374                             ],
    375                         },
    376                         {
    377                             'destination': '<(_app_target)/ui',
    378                             'files': [
    379                                 '<@(devtools_ui_js_files)',
    380                                 'front_end/ui/module.json',
    381                             ],
    382                         },
    383                         {
    384                             'destination': '<(_app_target)/host',
    385                             'files': [
    386                                 '<@(devtools_host_js_files)',
    387                                 'front_end/host/module.json',
    388                             ],
    389                         },
    390                         {
    391                             'destination': '<(_app_target)/screencast',
    392                             'files': [
    393                                 '<@(devtools_screencast_js_files)',
    394                                 'front_end/screencast/module.json',
    395                             ],
    396                         },
    397                         {
    398                             'destination': '<(_app_target)/toolbox',
    399                             'files': [
    400                                 '<@(devtools_toolbox_js_files)',
    401                                 'front_end/toolbox/module.json',
    402                             ],
    403                         },
    404                         {
    405                             'destination': '<(_app_target)/toolbox_bootstrap',
    406                             'files': [
    407                                 '<@(devtools_toolbox_bootstrap_js_files)',
    408                                 'front_end/toolbox_bootstrap/module.json',
    409                             ],
    410                         },
    411                         {
    412                             'destination': '<(_app_target)/main',
    413                             'files': [
    414                                 '<@(devtools_main_js_files)',
    415                                 'front_end/main/module.json',
    416                             ],
    417                         },
    418                     ]
    419                 }]
    420             ]
    421         },
    422         {
    423             'target_name': 'build_audits_module',
    424             'type': 'none',
    425             'conditions': [
    426                 ['debug_devtools==0', { # Release
    427                     'actions': [{
    428                         'action_name': 'build_audits_module',
    429                         'script_name': 'scripts/concatenate_module_scripts.py',
    430                         'input_file': 'front_end/audits/module.json',
    431                         'inputs': [
    432                             '<@(_script_name)',
    433                             '<@(_input_file)',
    434                             '<@(devtools_audits_js_files)',
    435                         ],
    436                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/audits_module.js'],
    437                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    438                     }],
    439                 },
    440                 { # Debug
    441                     'copies': [
    442                         {
    443                             'destination': '<(PRODUCT_DIR)/resources/inspector/audits',
    444                             'files': [
    445                                 '<@(devtools_audits_js_files)',
    446                                 'front_end/audits/module.json',
    447                             ],
    448                         }
    449                     ]
    450                 }]
    451             ]
    452         },
    453         {
    454             'target_name': 'build_console_module',
    455             'type': 'none',
    456             'conditions': [
    457                 ['debug_devtools==0', { # Release
    458                     'actions': [{
    459                         'action_name': 'build_console_module',
    460                         'script_name': 'scripts/concatenate_module_scripts.py',
    461                         'input_file': 'front_end/console/module.json',
    462                         'inputs': [
    463                             '<@(_script_name)',
    464                             '<@(_input_file)',
    465                             '<@(devtools_console_js_files)',
    466                         ],
    467                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/console_module.js'],
    468                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    469                     }],
    470                 },
    471                 { # Debug
    472                     'copies': [
    473                         {
    474                             'destination': '<(PRODUCT_DIR)/resources/inspector/console',
    475                             'files': [
    476                                 '<@(devtools_console_js_files)',
    477                                 'front_end/console/module.json',
    478                             ],
    479                         }
    480                     ]
    481                 }]
    482             ]
    483         },
    484         {
    485             'target_name': 'build_devices_module',
    486             'type': 'none',
    487             'conditions': [
    488                 ['debug_devtools==0', { # Release
    489                     'actions': [{
    490                         'action_name': 'build_devices_module',
    491                         'script_name': 'scripts/concatenate_module_scripts.py',
    492                         'input_file': 'front_end/devices/module.json',
    493                         'inputs': [
    494                             '<@(_script_name)',
    495                             '<@(_input_file)',
    496                             '<@(devtools_devices_js_files)',
    497                         ],
    498                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/devices_module.js'],
    499                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    500                     }],
    501                 },
    502                 { # Debug
    503                     'copies': [
    504                         {
    505                             'destination': '<(PRODUCT_DIR)/resources/inspector/devices',
    506                             'files': [
    507                                 '<@(devtools_devices_js_files)',
    508                                 'front_end/devices/module.json',
    509                             ],
    510                         }
    511                     ]
    512                 }]
    513             ]
    514         },
    515         {
    516             'target_name': 'build_documentation_module',
    517             'type': 'none',
    518             'conditions': [
    519                 ['debug_devtools==0', { # Release
    520                     'actions': [{
    521                         'action_name': 'build_documentation_module',
    522                         'script_name': 'scripts/concatenate_module_scripts.py',
    523                         'input_file': 'front_end/documentation/module.json',
    524                         'inputs': [
    525                             '<@(_script_name)',
    526                             '<@(_input_file)',
    527                             '<@(devtools_documentation_js_files)',
    528                         ],
    529                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/documentation_module.js'],
    530                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    531                     }],
    532                 },
    533                 { # Debug
    534                     'copies': [
    535                         {
    536                             'destination': '<(PRODUCT_DIR)/resources/inspector/documentation',
    537                             'files': [
    538                                 '<@(devtools_documentation_js_files)',
    539                                 'front_end/documentation/module.json',
    540                             ],
    541                         }
    542                     ]
    543                 }]
    544             ]
    545         },
    546         {
    547             'target_name': 'build_elements_module',
    548             'type': 'none',
    549             'conditions': [
    550                 ['debug_devtools==0', { # Release
    551                     'actions': [{
    552                         'action_name': 'build_elements_module',
    553                         'script_name': 'scripts/concatenate_module_scripts.py',
    554                         'input_file': 'front_end/elements/module.json',
    555                         'inputs': [
    556                             '<@(_script_name)',
    557                             '<@(_input_file)',
    558                             '<@(devtools_elements_js_files)',
    559                         ],
    560                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/elements_module.js'],
    561                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    562                     }],
    563                 },
    564                 { # Debug
    565                     'copies': [
    566                         {
    567                             'destination': '<(PRODUCT_DIR)/resources/inspector/elements',
    568                             'files': [
    569                                 '<@(devtools_elements_js_files)',
    570                                 'front_end/elements/module.json',
    571                             ],
    572                         }
    573                     ]
    574                 }]
    575             ]
    576         },
    577         {
    578             'target_name': 'build_extensions_module',
    579             'type': 'none',
    580             'conditions': [
    581                 ['debug_devtools==0', { # Release
    582                     'actions': [{
    583                         'action_name': 'build_extensions_module',
    584                         'script_name': 'scripts/concatenate_module_scripts.py',
    585                         'input_file': 'front_end/extensions/module.json',
    586                         'inputs': [
    587                             '<@(_script_name)',
    588                             '<@(_input_file)',
    589                             '<@(devtools_extensions_js_files)',
    590                         ],
    591                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/extensions_module.js'],
    592                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    593                     }],
    594                 },
    595                 { # Debug
    596                     'copies': [
    597                         {
    598                             'destination': '<(PRODUCT_DIR)/resources/inspector/extensions',
    599                             'files': [
    600                                 '<@(devtools_extensions_js_files)',
    601                                 'front_end/extensions/module.json',
    602                             ],
    603                         }
    604                     ]
    605                 }]
    606             ]
    607         },
    608         {
    609             'target_name': 'build_heap_snapshot_worker_module',
    610             'type': 'none',
    611             'conditions': [
    612                 ['debug_devtools==0', { # Release
    613                     # Built by 'build_applications'.
    614                 },
    615                 { # Debug
    616                     'copies': [
    617                         {
    618                             'destination': '<(PRODUCT_DIR)/resources/inspector/heap_snapshot_worker',
    619                             'files': [
    620                                 '<@(devtools_heap_snapshot_worker_js_files)',
    621                                 'front_end/heap_snapshot_worker/module.json',
    622                             ],
    623                         }
    624                     ]
    625                 }]
    626             ]
    627         },
    628         {
    629             'target_name': 'build_layers_module',
    630             'type': 'none',
    631             'conditions': [
    632                 ['debug_devtools==0', { # Release
    633                     'actions': [{
    634                         'action_name': 'build_layers_module',
    635                         'script_name': 'scripts/concatenate_module_scripts.py',
    636                         'input_file': 'front_end/layers/module.json',
    637                         'inputs': [
    638                             '<@(_script_name)',
    639                             '<@(_input_file)',
    640                             '<@(devtools_layers_js_files)',
    641                         ],
    642                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/layers_module.js'],
    643                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    644                     }],
    645                 },
    646                 { # Debug
    647                     'copies': [
    648                         {
    649                             'destination': '<(PRODUCT_DIR)/resources/inspector/layers',
    650                             'files': [
    651                                 '<@(devtools_layers_js_files)',
    652                                 'front_end/layers/module.json',
    653                             ],
    654                         }
    655                     ]
    656                 }]
    657             ]
    658         },
    659         {
    660             'target_name': 'build_network_module',
    661             'type': 'none',
    662             'conditions': [
    663                 ['debug_devtools==0', { # Release
    664                     'actions': [{
    665                         'action_name': 'build_network_module',
    666                         'script_name': 'scripts/concatenate_module_scripts.py',
    667                         'input_file': 'front_end/network/module.json',
    668                         'inputs': [
    669                             '<@(_script_name)',
    670                             '<@(_input_file)',
    671                             '<@(devtools_network_js_files)',
    672                         ],
    673                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/network_module.js'],
    674                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    675                     }],
    676                 },
    677                 { # Debug
    678                     'copies': [
    679                         {
    680                             'destination': '<(PRODUCT_DIR)/resources/inspector/network',
    681                             'files': [
    682                                 '<@(devtools_network_js_files)',
    683                                 'front_end/network/module.json',
    684                             ],
    685                         }
    686                     ]
    687                 }]
    688             ]
    689         },
    690         {
    691             'target_name': 'build_profiler_module',
    692             'type': 'none',
    693             'conditions': [
    694                 ['debug_devtools==0', { # Release
    695                     'actions': [{
    696                         'action_name': 'build_profiler_module',
    697                         'script_name': 'scripts/concatenate_module_scripts.py',
    698                         'input_file': 'front_end/profiler/module.json',
    699                         'inputs': [
    700                             '<@(_script_name)',
    701                             '<@(_input_file)',
    702                             '<@(devtools_profiler_js_files)',
    703                         ],
    704                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/profiler_module.js'],
    705                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    706                     }],
    707                 },
    708                 { # Debug
    709                     'copies': [
    710                         {
    711                             'destination': '<(PRODUCT_DIR)/resources/inspector/profiler',
    712                             'files': [
    713                                 '<@(devtools_profiler_js_files)',
    714                                 'front_end/profiler/module.json',
    715                             ],
    716                         }
    717                     ]
    718                 }]
    719             ]
    720         },
    721         {
    722             'target_name': 'build_promises_module',
    723             'type': 'none',
    724             'conditions': [
    725                 ['debug_devtools==0', { # Release
    726                     'actions': [{
    727                         'action_name': 'build_promises_module',
    728                         'script_name': 'scripts/concatenate_module_scripts.py',
    729                         'input_file': 'front_end/promises/module.json',
    730                         'inputs': [
    731                             '<@(_script_name)',
    732                             '<@(_input_file)',
    733                             '<@(devtools_promises_js_files)',
    734                         ],
    735                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/promises_module.js'],
    736                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    737                     }],
    738                 },
    739                 { # Debug
    740                     'copies': [
    741                         {
    742                             'destination': '<(PRODUCT_DIR)/resources/inspector/promises',
    743                             'files': [
    744                                 '<@(devtools_promises_js_files)',
    745                                 'front_end/promises/module.json',
    746                             ],
    747                         }
    748                     ]
    749                 }]
    750             ]
    751         },
    752         {
    753             'target_name': 'build_resources_module',
    754             'type': 'none',
    755             'conditions': [
    756                 ['debug_devtools==0', { # Release
    757                     'actions': [{
    758                         'action_name': 'build_resources_module',
    759                         'script_name': 'scripts/concatenate_module_scripts.py',
    760                         'input_file': 'front_end/resources/module.json',
    761                         'inputs': [
    762                             '<@(_script_name)',
    763                             '<@(_input_file)',
    764                             '<@(devtools_resources_js_files)',
    765                         ],
    766                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/resources_module.js'],
    767                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    768                     }],
    769                 },
    770                 { # Debug
    771                     'copies': [
    772                         {
    773                             'destination': '<(PRODUCT_DIR)/resources/inspector/resources',
    774                             'files': [
    775                                 '<@(devtools_resources_js_files)',
    776                                 'front_end/resources/module.json',
    777                             ],
    778                         }
    779                     ]
    780                 }]
    781             ]
    782         },
    783         {
    784             'target_name': 'build_script_formatter_worker_module',
    785             'type': 'none',
    786             'conditions': [
    787                 ['debug_devtools==0', { # Release
    788                     # Built by 'build_applications'.
    789                 },
    790                 { # Debug
    791                     'copies': [
    792                         {
    793                             'destination': '<(PRODUCT_DIR)/resources/inspector/script_formatter_worker',
    794                             'files': [
    795                                 # FIXME: This will excessively copy files from common/ and cm/ folders into worker folder, which is fine for the debug mode.
    796                                 '<@(devtools_script_formatter_worker_js_files)',
    797                                 'front_end/script_formatter_worker/module.json',
    798                             ],
    799                         },
    800                         {
    801                             'destination': '<(PRODUCT_DIR)/resources/inspector/UglifyJS',
    802                             'files': [
    803                                 '<@(devtools_uglify_files)',
    804                             ],
    805                         }
    806                     ]
    807                 }]
    808             ]
    809         },
    810         {
    811             'target_name': 'build_settings_module',
    812             'type': 'none',
    813             'conditions': [
    814                 ['debug_devtools==0', { # Release
    815                     'actions': [{
    816                         'action_name': 'build_settings_module',
    817                         'script_name': 'scripts/concatenate_module_scripts.py',
    818                         'input_file': 'front_end/settings/module.json',
    819                         'inputs': [
    820                             '<@(_script_name)',
    821                             '<@(_input_file)',
    822                             '<@(devtools_settings_js_files)',
    823                         ],
    824                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/settings_module.js'],
    825                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    826                     }],
    827                 },
    828                 { # Debug
    829                     'copies': [
    830                         {
    831                             'destination': '<(PRODUCT_DIR)/resources/inspector/settings',
    832                             'files': [
    833                                 '<@(devtools_settings_js_files)',
    834                                 'front_end/settings/module.json',
    835                             ],
    836                         }
    837                     ]
    838                 }]
    839             ]
    840         },
    841         {
    842             'target_name': 'build_source_frame_module',
    843             'type': 'none',
    844             'conditions': [
    845                 ['debug_devtools==0', { # Release
    846                     'actions': [{
    847                         'action_name': 'build_source_frame_module',
    848                         'script_name': 'scripts/concatenate_module_scripts.py',
    849                         'input_file': 'front_end/source_frame/module.json',
    850                         'inputs': [
    851                             '<@(_script_name)',
    852                             '<@(_input_file)',
    853                             '<@(devtools_source_frame_js_files)',
    854                             '<@(devtools_cm_js_files)',
    855                         ],
    856                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/source_frame_module.js'],
    857                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    858                     }],
    859                     'copies': [
    860                         {
    861                             'destination': '<(PRODUCT_DIR)/resources/inspector/cm',
    862                             'files': [
    863                                 '<@(devtools_cm_css_files)',
    864                             ],
    865                         }
    866                     ],
    867                 },
    868                 { # Debug
    869                     'copies': [
    870                         {
    871                             'destination': '<(PRODUCT_DIR)/resources/inspector/source_frame',
    872                             'files': [
    873                                 '<@(devtools_source_frame_js_files)',
    874                                 'front_end/source_frame/module.json',
    875                             ],
    876                         },
    877                         {
    878                             'destination': '<(PRODUCT_DIR)/resources/inspector/cm',
    879                             'files': [
    880                                 '<@(devtools_cm_js_files)',
    881                                 '<@(devtools_cm_css_files)',
    882                             ],
    883                         }
    884                     ]
    885                 }]
    886             ]
    887         },
    888         {
    889             'target_name': 'build_sources_module',
    890             'type': 'none',
    891             'conditions': [
    892                 ['debug_devtools==0', { # Release
    893                     'actions': [{
    894                         'action_name': 'build_sources_module',
    895                         'script_name': 'scripts/concatenate_module_scripts.py',
    896                         'input_file': 'front_end/sources/module.json',
    897                         'inputs': [
    898                             '<@(_script_name)',
    899                             '<@(_input_file)',
    900                             '<@(devtools_sources_js_files)',
    901                         ],
    902                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/sources_module.js'],
    903                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    904                     }],
    905                 },
    906                 { # Debug
    907                     'copies': [
    908                         {
    909                             'destination': '<(PRODUCT_DIR)/resources/inspector/sources',
    910                             'files': [
    911                                 '<@(devtools_sources_js_files)',
    912                                 'front_end/sources/module.json',
    913                             ],
    914                         }
    915                     ]
    916                 }]
    917             ]
    918         },
    919         {
    920             'target_name': 'build_temp_storage_shared_worker_module',
    921             'type': 'none',
    922             'conditions': [
    923                 ['debug_devtools==0', { # Release
    924                     # Built by 'build_applications'.
    925                 },
    926                 { # Debug
    927                     'copies': [
    928                         {
    929                             'destination': '<(PRODUCT_DIR)/resources/inspector/temp_storage_shared_worker',
    930                             'files': [
    931                                 '<@(devtools_temp_storage_shared_worker_js_files)',
    932                                 'front_end/temp_storage_shared_worker/module.json',
    933                             ],
    934                         }
    935                     ]
    936                 }]
    937             ]
    938         },
    939         {
    940             'target_name': 'build_timeline_module',
    941             'type': 'none',
    942             'conditions': [
    943                 ['debug_devtools==0', { # Release
    944                     'actions': [{
    945                         'action_name': 'build_timeline_module',
    946                         'script_name': 'scripts/concatenate_module_scripts.py',
    947                         'input_file': 'front_end/timeline/module.json',
    948                         'inputs': [
    949                             '<@(_script_name)',
    950                             '<@(_input_file)',
    951                             '<@(devtools_timeline_js_files)',
    952                         ],
    953                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/timeline_module.js'],
    954                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
    955                     }],
    956                 },
    957                 { # Debug
    958                     'copies': [
    959                         {
    960                             'destination': '<(PRODUCT_DIR)/resources/inspector/timeline',
    961                             'files': [
    962                                 '<@(devtools_timeline_js_files)',
    963                                 'front_end/timeline/module.json',
    964                             ],
    965                         }
    966                     ]
    967                 }]
    968             ]
    969         },
    970     ], # targets
    971     'conditions': [
    972         ['debug_devtools==0', {
    973             'targets': [
    974                 {
    975                     'target_name': 'copy_standalone_css',
    976                     'type': 'none',
    977                     'copies': [{
    978                         'destination': '<(PRODUCT_DIR)/resources/inspector',
    979                         'files': [
    980                             '<@(devtools_standalone_files)',
    981                         ],
    982                     }],
    983                 },
    984                 {
    985                     'target_name': 'concatenated_devtools_css',
    986                     'type': 'none',
    987                     'dependencies': [
    988                         'devtools_html',
    989                     ],
    990                     'actions': [{
    991                         'action_name': 'concatenate_devtools_css',
    992                         'script_name': 'scripts/concatenate_css_files.py',
    993                         'input_stylesheet': 'front_end/devtools.css',
    994                         'inputs': [
    995                             '<@(_script_name)',
    996                             '<@(_input_stylesheet)',
    997                             '<@(devtools_core_base_files)',
    998                         ],
    999                         'search_path': [ 'front_end' ],
   1000                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.css'],
   1001                         'action': ['python', '<@(_script_name)', '<@(_input_stylesheet)', '<@(_outputs)'],
   1002                     }],
   1003                 },
   1004                 {
   1005                     'target_name': 'concatenated_toolbox_css',
   1006                     'type': 'none',
   1007                     'dependencies': [
   1008                         'toolbox_html',
   1009                     ],
   1010                     'actions': [{
   1011                         'action_name': 'concatenate_toolbox_css',
   1012                         'script_name': 'scripts/concatenate_css_files.py',
   1013                         'input_stylesheet': 'front_end/toolbox.css',
   1014                         'inputs': [
   1015                             '<@(_script_name)',
   1016                             '<@(_input_stylesheet)',
   1017                             '<@(devtools_core_base_files)',
   1018                         ],
   1019                         'search_path': [ 'front_end' ],
   1020                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/toolbox.css'],
   1021                         'action': ['python', '<@(_script_name)', '<@(_input_stylesheet)', '<@(_outputs)'],
   1022                     }],
   1023                 },
   1024                 {
   1025                     'target_name': 'concatenated_module_descriptors',
   1026                     'type': 'none',
   1027                     'actions': [{
   1028                         'action_name': 'concatenated_module_descriptors',
   1029                         'script_name': 'scripts/concatenate_module_descriptors.py',
   1030                         'input_file': ['front_end/Runtime.js'],
   1031                         'inputs': [
   1032                             '<@(_script_name)',
   1033                             '<@(_input_file)',
   1034                             '<@(devtools_module_json_files)',
   1035                         ],
   1036                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/Runtime.js'],
   1037                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)', '<@(devtools_module_json_files)'],
   1038                     }],
   1039                 },
   1040             ],
   1041         }],
   1042     ], # conditions
   1043 }
   1044