• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                'supported_css_properties',
42                'frontend_protocol_sources',
43                'build_audits_module',
44                'build_core_module',
45                'build_console_module',
46                'build_devices_module',
47                'build_elements_module',
48                'build_extensions_module',
49                'build_layers_module',
50                'build_network_module',
51                'build_profiler_module',
52                'build_resources_module',
53                'build_search_module',
54                'build_settings_module',
55                'build_source_frame_module',
56                'build_sources_module',
57                'build_timeline_module',
58                'build_heap_snapshot_worker_module',
59                'build_script_formatter_worker_module',
60                'build_temp_storage_shared_worker_module',
61            ],
62            'conditions': [
63                ['debug_devtools==0', {
64                    'dependencies': [
65                        'concatenated_devtools_css',
66                    ],
67                }],
68            ],
69            'copies': [
70                {
71                    'destination': '<(PRODUCT_DIR)/resources/inspector/Images',
72                    'files': [
73                        '<@(devtools_image_files)',
74                    ],
75                },
76            ],
77        },
78        {
79            'target_name': 'devtools_html',
80            'type': 'none',
81            'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
82            'actions': [{
83                'action_name': 'devtools_html',
84                'script_name': 'scripts/generate_devtools_html.py',
85                'input_page': 'front_end/inspector.html',
86                'inputs': [
87                    '<@(_script_name)',
88                    '<@(_input_page)',
89                ],
90                'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
91                'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)'],
92            }],
93        },
94        {
95            'target_name': 'devtools_extension_api',
96            'type': 'none',
97            'actions': [{
98                'action_name': 'devtools_html',
99                'script_name': 'scripts/generate_devtools_extension_api.py',
100                'inputs': [
101                    '<@(_script_name)',
102                    '<@(devtools_extension_api_files)',
103                ],
104                'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js'],
105                'action': ['python', '<@(_script_name)', '<@(_outputs)', '<@(devtools_extension_api_files)'],
106            }],
107        },
108        {
109            'target_name': 'generate_devtools_grd',
110            'type': 'none',
111            'dependencies': [
112                'devtools_html',
113                'devtools_extension_api',
114                'devtools_frontend_resources',
115            ],
116            'conditions': [
117                ['debug_devtools==0', {
118                    'actions': [{
119                        'action_name': 'generate_devtools_grd',
120                        'script_name': 'scripts/generate_devtools_grd.py',
121                        'relative_path_dirs': [
122                            '<(PRODUCT_DIR)/resources/inspector',
123                            'front_end'
124                        ],
125                        'input_pages': [
126                            '<(PRODUCT_DIR)/resources/inspector/devtools.html',
127                            '<(PRODUCT_DIR)/resources/inspector/main/Main.js',
128                            '<(PRODUCT_DIR)/resources/inspector/search/AdvancedSearchView.js',
129                            '<(PRODUCT_DIR)/resources/inspector/console/ConsolePanel.js',
130                            '<(PRODUCT_DIR)/resources/inspector/elements/ElementsPanel.js',
131                            '<(PRODUCT_DIR)/resources/inspector/extensions/ExtensionServer.js',
132                            '<(PRODUCT_DIR)/resources/inspector/resources/ResourcesPanel.js',
133                            '<(PRODUCT_DIR)/resources/inspector/network/NetworkPanel.js',
134                            '<(PRODUCT_DIR)/resources/inspector/settings/SettingsScreen.js',
135                            '<(PRODUCT_DIR)/resources/inspector/source_frame/SourceFrame.js',
136                            '<(PRODUCT_DIR)/resources/inspector/sources/SourcesPanel.js',
137                            '<(PRODUCT_DIR)/resources/inspector/timeline/TimelinePanel.js',
138                            '<(PRODUCT_DIR)/resources/inspector/profiler/ProfilesPanel.js',
139                            '<(PRODUCT_DIR)/resources/inspector/audits/AuditsPanel.js',
140                            '<(PRODUCT_DIR)/resources/inspector/layers/LayersPanel.js',
141                            '<(PRODUCT_DIR)/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js',
142                            '<(PRODUCT_DIR)/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js',
143                            '<(PRODUCT_DIR)/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js',
144                            '<(PRODUCT_DIR)/resources/inspector/devices/DevicesView.js',
145                            '<(PRODUCT_DIR)/resources/inspector/inspector.css',
146                            '<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js',
147                            '<@(devtools_standalone_files)',
148                            '<@(devtools_cm_css_files)',
149                        ],
150                        'images': [
151                            '<@(devtools_image_files)',
152                        ],
153                        'inputs': [
154                            '<@(_script_name)',
155                            '<@(_input_pages)',
156                            '<@(_images)',
157                        ],
158                        'images_path': [
159                            'front_end/Images',
160                        ],
161                        'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
162                        'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--relative_path_dirs', '<@(_relative_path_dirs)', '--images', '<@(_images_path)', '--output', '<@(_outputs)'],
163                    }],
164                },
165                {
166                    # If we're not concatenating devtools files, we want to
167                    # run after the original files have been copied to
168                    # <(PRODUCT_DIR)/resources/inspector.
169                    'dependencies': ['devtools_frontend_resources'],
170                    'actions': [{
171                        'action_name': 'generate_devtools_grd',
172                        'script_name': 'scripts/generate_devtools_grd.py',
173                        'relative_path_dirs': [
174                            'front_end',
175                            '<(PRODUCT_DIR)/resources/inspector',
176                            '<(SHARED_INTERMEDIATE_DIR)/blink',
177                        ],
178                        'input_pages': [
179                            '<@(all_devtools_files)',
180                            '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
181                            '<(SHARED_INTERMEDIATE_DIR)/blink/SupportedCSSProperties.js',
182                            '<(PRODUCT_DIR)/resources/inspector/devtools.html',
183                        ],
184                        'images': [
185                            '<@(devtools_image_files)',
186                        ],
187                        'inputs': [
188                            '<@(_script_name)',
189                            '<@(_input_pages)',
190                            '<@(_images)',
191                        ],
192                        'images_path': [
193                            'front_end/Images',
194                        ],
195                        # Note that other files are put under /devtools directory, together with declared devtools_resources.grd
196                        'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
197                        'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--relative_path_dirs', '<@(_relative_path_dirs)', '--images', '<@(_images_path)', '--output', '<@(_outputs)'],
198                    }],
199                }],
200            ],
201        },
202        {
203          'target_name': 'frontend_protocol_sources',
204          'type': 'none',
205          'actions': [
206            {
207              'action_name': 'generateInspectorProtocolFrontendSources',
208              'inputs': [
209                # The python script in action below.
210                'scripts/CodeGeneratorFrontend.py',
211                # Input file for the script.
212                'protocol.json',
213              ],
214              'outputs': [
215                '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
216              ],
217              'action': [
218                'python',
219                'scripts/CodeGeneratorFrontend.py',
220                'protocol.json',
221                '--output_js_dir', '<(SHARED_INTERMEDIATE_DIR)/blink',
222              ],
223              'message': 'Generating Inspector protocol frontend sources from protocol.json',
224            },
225          ]
226        },
227        {
228          'target_name': 'supported_css_properties',
229          'type': 'none',
230          'actions': [
231            {
232              'action_name': 'generateSupportedCSSProperties',
233              'inputs': [
234                # The python script in action below.
235                'scripts/generate_supported_css.py',
236                # Input files for the script.
237                '../core/css/CSSPropertyNames.in',
238                '../core/css/SVGCSSPropertyNames.in',
239                '../core/css/CSSShorthands.in',
240              ],
241              'outputs': [
242                '<(SHARED_INTERMEDIATE_DIR)/blink/SupportedCSSProperties.js',
243              ],
244              'action': [
245                'python',
246                '<@(_inputs)',
247                '<@(_outputs)',
248              ],
249              'message': 'Generating supported CSS properties for front end',
250            },
251          ]
252        },
253        # Frontend modules.
254        {
255            'target_name': 'build_core_module',
256            'type': 'none',
257            'conditions': [
258                ['debug_devtools==0', { # Release
259                    'dependencies': [
260                        'devtools_html',
261                        'supported_css_properties',
262                        'frontend_protocol_sources',
263                        'concatenated_module_descriptors',
264                    ],
265                    'actions': [{
266                        'action_name': 'build_core_module',
267                        'script_name': 'scripts/concatenate_js_files.py',
268                        'input_page': 'front_end/inspector.html',
269                        'inputs': [
270                            '<@(_script_name)',
271                            '<@(_input_page)',
272                            '<@(devtools_core_js_files)',
273                            '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
274                            '<(SHARED_INTERMEDIATE_DIR)/blink/SupportedCSSProperties.js',
275                            '<(SHARED_INTERMEDIATE_DIR)/blink/common/modules.js',
276                        ],
277                        'search_path': [
278                            '<(SHARED_INTERMEDIATE_DIR)/blink',
279                            'front_end',
280                        ],
281                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/main/Main.js'],
282                        'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
283                    }]
284                },
285                { # Debug
286                    'copies': [
287                        {
288                            'destination': '<(PRODUCT_DIR)/resources/inspector',
289                            'files': [
290                                '<@(devtools_core_base_js_files)',
291                                '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
292                                '<(SHARED_INTERMEDIATE_DIR)/blink/SupportedCSSProperties.js',
293                            ],
294                        },
295                        {
296                            'destination': '<(PRODUCT_DIR)/resources/inspector/common',
297                            'files': [
298                                '<@(devtools_common_js_files)',
299                            ],
300                        },
301                        {
302                            'destination': '<(PRODUCT_DIR)/resources/inspector/components',
303                            'files': [
304                                '<@(devtools_components_js_files)',
305                            ],
306                        },
307                        {
308                            'destination': '<(PRODUCT_DIR)/resources/inspector/sdk',
309                            'files': [
310                                '<@(devtools_sdk_js_files)',
311                            ],
312                        },
313                        {
314                            'destination': '<(PRODUCT_DIR)/resources/inspector/ui',
315                            'files': [
316                                '<@(devtools_ui_js_files)',
317                            ],
318                        },
319                        {
320                            'destination': '<(PRODUCT_DIR)/resources/inspector/main',
321                            'files': [
322                                '<@(devtools_main_js_files)',
323                                'front_end/main/module.json',
324                            ],
325                        },
326                    ]
327                }]
328            ]
329        },
330        {
331            'target_name': 'build_console_module',
332            'type': 'none',
333            'conditions': [
334                ['debug_devtools==0', { # Release
335                    'actions': [{
336                        'action_name': 'build_console_module',
337                        'script_name': 'scripts/inline_js_imports.py',
338                        'input_file': 'front_end/console/ConsolePanel.js',
339                        'inputs': [
340                            '<@(_script_name)',
341                            '<@(devtools_console_js_files)',
342                        ],
343                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/console/ConsolePanel.js'],
344                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
345                    }],
346                },
347                { # Debug
348                    'copies': [
349                        {
350                            'destination': '<(PRODUCT_DIR)/resources/inspector/console',
351                            'files': [
352                                '<@(devtools_console_js_files)',
353                                'front_end/console/module.json',
354                            ],
355                        }
356                    ]
357                }]
358            ]
359        },
360        {
361            'target_name': 'build_search_module',
362            'type': 'none',
363            'conditions': [
364                ['debug_devtools==0', { # Release
365                    'actions': [{
366                        'action_name': 'build_search_module',
367                        'script_name': 'scripts/inline_js_imports.py',
368                        'input_file': 'front_end/search/AdvancedSearchView.js',
369                        'inputs': [
370                            '<@(_script_name)',
371                            '<@(devtools_search_js_files)',
372                        ],
373                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/search/AdvancedSearchView.js'],
374                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
375                    }],
376                },
377                { # Debug
378                    'copies': [
379                        {
380                            'destination': '<(PRODUCT_DIR)/resources/inspector/search',
381                            'files': [
382                                '<@(devtools_search_js_files)',
383                                'front_end/search/module.json',
384                            ],
385                        }
386                    ]
387                }]
388            ]
389        },
390        {
391            'target_name': 'build_devices_module',
392            'type': 'none',
393            'conditions': [
394                ['debug_devtools==0', { # Release
395                    'actions': [{
396                        'action_name': 'build_devices_module',
397                        'script_name': 'scripts/inline_js_imports.py',
398                        'input_file': 'front_end/devices/DevicesView.js',
399                        'inputs': [
400                            '<@(_script_name)',
401                            '<@(devtools_devices_js_files)',
402                        ],
403                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/devices/DevicesView.js'],
404                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
405                    }],
406                },
407                { # Debug
408                    'copies': [
409                        {
410                            'destination': '<(PRODUCT_DIR)/resources/inspector/devices',
411                            'files': [
412                                '<@(devtools_devices_js_files)',
413                                'front_end/devices/module.json',
414                            ],
415                        }
416                    ]
417                }]
418            ]
419        },
420        {
421            'target_name': 'build_elements_module',
422            'type': 'none',
423            'conditions': [
424                ['debug_devtools==0', { # Release
425                    'actions': [{
426                        'action_name': 'build_elements_module',
427                        'script_name': 'scripts/inline_js_imports.py',
428                        'input_file': 'front_end/elements/ElementsPanel.js',
429                        'inputs': [
430                            '<@(_script_name)',
431                            '<@(devtools_elements_js_files)',
432                        ],
433                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/elements/ElementsPanel.js'],
434                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
435                    }],
436                },
437                { # Debug
438                    'copies': [
439                        {
440                            'destination': '<(PRODUCT_DIR)/resources/inspector/elements',
441                            'files': [
442                                '<@(devtools_elements_js_files)',
443                                'front_end/elements/module.json',
444                            ],
445                        }
446                    ]
447                }]
448            ]
449        },
450        {
451            'target_name': 'build_resources_module',
452            'type': 'none',
453            'conditions': [
454                ['debug_devtools==0', { # Release
455                    'actions': [{
456                        'action_name': 'build_resources_module',
457                        'script_name': 'scripts/inline_js_imports.py',
458                        'input_file': 'front_end/resources/ResourcesPanel.js',
459                        'inputs': [
460                            '<@(_script_name)',
461                            '<@(devtools_resources_js_files)',
462                        ],
463                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/resources/ResourcesPanel.js'],
464                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
465                    }],
466                },
467                { # Debug
468                    'copies': [
469                        {
470                            'destination': '<(PRODUCT_DIR)/resources/inspector/resources',
471                            'files': [
472                                '<@(devtools_resources_js_files)',
473                                'front_end/resources/module.json',
474                            ],
475                        }
476                    ]
477                }]
478            ]
479        },
480        {
481            'target_name': 'build_network_module',
482            'type': 'none',
483            'conditions': [
484                ['debug_devtools==0', { # Release
485                    'actions': [{
486                        'action_name': 'build_network_module',
487                        'script_name': 'scripts/inline_js_imports.py',
488                        'input_file': 'front_end/network/NetworkPanel.js',
489                        'inputs': [
490                            '<@(_script_name)',
491                            '<@(devtools_network_js_files)',
492                        ],
493                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/network/NetworkPanel.js'],
494                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
495                    }],
496                },
497                { # Debug
498                    'copies': [
499                        {
500                            'destination': '<(PRODUCT_DIR)/resources/inspector/network',
501                            'files': [
502                                '<@(devtools_network_js_files)',
503                                'front_end/network/module.json',
504                            ],
505                        }
506                    ]
507                }]
508            ]
509        },
510        {
511            'target_name': 'build_extensions_module',
512            'type': 'none',
513            'conditions': [
514                ['debug_devtools==0', { # Release
515                    'actions': [{
516                        'action_name': 'build_extensions_module',
517                        'script_name': 'scripts/inline_js_imports.py',
518                        'input_file': 'front_end/extensions/ExtensionServer.js',
519                        'inputs': [
520                            '<@(_script_name)',
521                            '<@(devtools_extensions_js_files)',
522                        ],
523                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/extensions/ExtensionServer.js'],
524                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
525                    }],
526                },
527                { # Debug
528                    'copies': [
529                        {
530                            'destination': '<(PRODUCT_DIR)/resources/inspector/extensions',
531                            'files': [
532                                '<@(devtools_extensions_js_files)',
533                                'front_end/extensions/module.json',
534                            ],
535                        }
536                    ]
537                }]
538            ]
539        },
540        {
541            'target_name': 'build_source_frame_module',
542            'type': 'none',
543            'conditions': [
544                ['debug_devtools==0', { # Release
545                    'actions': [{
546                        'action_name': 'build_source_frame_module',
547                        'script_name': 'scripts/inline_js_imports.py',
548                        'input_file': 'front_end/source_frame/SourceFrame.js',
549                        'inputs': [
550                            '<@(_script_name)',
551                            '<@(devtools_source_frame_js_files)',
552                            '<@(devtools_cm_js_files)',
553                        ],
554                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/source_frame/SourceFrame.js'],
555                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
556                    }],
557                    'copies': [
558                        {
559                            'destination': '<(PRODUCT_DIR)/resources/inspector/cm',
560                            'files': [
561                                '<@(devtools_cm_css_files)',
562                            ],
563                        }
564                    ],
565                },
566                { # Debug
567                    'copies': [
568                        {
569                            'destination': '<(PRODUCT_DIR)/resources/inspector/source_frame',
570                            'files': [
571                                '<@(devtools_source_frame_js_files)',
572                                'front_end/source_frame/module.json',
573                            ],
574                        },
575                        {
576                            'destination': '<(PRODUCT_DIR)/resources/inspector/cm',
577                            'files': [
578                                '<@(devtools_cm_js_files)',
579                                '<@(devtools_cm_css_files)',
580                            ],
581                        }
582                    ]
583                }]
584            ]
585        },
586        {
587            'target_name': 'build_sources_module',
588            'type': 'none',
589            'conditions': [
590                ['debug_devtools==0', { # Release
591                    'actions': [{
592                        'action_name': 'build_sources_module',
593                        'script_name': 'scripts/inline_js_imports.py',
594                        'input_file': 'front_end/sources/SourcesPanel.js',
595                        'inputs': [
596                            '<@(_script_name)',
597                            '<@(devtools_sources_js_files)',
598                        ],
599                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/sources/SourcesPanel.js'],
600                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
601                    }],
602                },
603                { # Debug
604                    'copies': [
605                        {
606                            'destination': '<(PRODUCT_DIR)/resources/inspector/sources',
607                            'files': [
608                                '<@(devtools_sources_js_files)',
609                                'front_end/sources/module.json',
610                            ],
611                        }
612                    ]
613                }]
614            ]
615        },
616        {
617            'target_name': 'build_timeline_module',
618            'type': 'none',
619            'conditions': [
620                ['debug_devtools==0', { # Release
621                    'actions': [{
622                        'action_name': 'build_timeline_module',
623                        'script_name': 'scripts/inline_js_imports.py',
624                        'input_file': 'front_end/timeline/TimelinePanel.js',
625                        'inputs': [
626                            '<@(_script_name)',
627                            '<@(devtools_timeline_js_files)',
628                        ],
629                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/timeline/TimelinePanel.js'],
630                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
631                    }],
632                },
633                { # Debug
634                    'copies': [
635                        {
636                            'destination': '<(PRODUCT_DIR)/resources/inspector/timeline',
637                            'files': [
638                                '<@(devtools_timeline_js_files)',
639                                'front_end/timeline/module.json',
640                            ],
641                        }
642                    ]
643                }]
644            ]
645        },
646        {
647            'target_name': 'build_profiler_module',
648            'type': 'none',
649            'conditions': [
650                ['debug_devtools==0', { # Release
651                    'actions': [{
652                        'action_name': 'build_profiler_module',
653                        'script_name': 'scripts/inline_js_imports.py',
654                        'input_file': 'front_end/profiler/ProfilesPanel.js',
655                        'inputs': [
656                            '<@(_script_name)',
657                            '<@(devtools_profiler_js_files)',
658                        ],
659                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/profiler/ProfilesPanel.js'],
660                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
661                    }],
662                },
663                { # Debug
664                    'copies': [
665                        {
666                            'destination': '<(PRODUCT_DIR)/resources/inspector/profiler',
667                            'files': [
668                                '<@(devtools_profiler_js_files)',
669                                'front_end/profiler/module.json',
670                            ],
671                        }
672                    ]
673                }]
674            ]
675        },
676        {
677            'target_name': 'build_audits_module',
678            'type': 'none',
679            'conditions': [
680                ['debug_devtools==0', { # Release
681                    'actions': [{
682                        'action_name': 'build_audits_module',
683                        'script_name': 'scripts/inline_js_imports.py',
684                        'input_file': 'front_end/audits/AuditsPanel.js',
685                        'inputs': [
686                            '<@(_script_name)',
687                            '<@(devtools_audits_js_files)',
688                        ],
689                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/audits/AuditsPanel.js'],
690                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
691                    }],
692                },
693                { # Debug
694                    'copies': [
695                        {
696                            'destination': '<(PRODUCT_DIR)/resources/inspector/audits',
697                            'files': [
698                                '<@(devtools_audits_js_files)',
699                                'front_end/audits/module.json',
700                            ],
701                        }
702                    ]
703                }]
704            ]
705        },
706        {
707            'target_name': 'build_settings_module',
708            'type': 'none',
709            'conditions': [
710                ['debug_devtools==0', { # Release
711                    'actions': [{
712                        'action_name': 'build_settings_module',
713                        'script_name': 'scripts/inline_js_imports.py',
714                        'input_file': 'front_end/settings/SettingsScreen.js',
715                        'inputs': [
716                            '<@(_script_name)',
717                            '<@(devtools_settings_js_files)',
718                        ],
719                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/settings/SettingsScreen.js'],
720                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
721                    }],
722                },
723                { # Debug
724                    'copies': [
725                        {
726                            'destination': '<(PRODUCT_DIR)/resources/inspector/settings',
727                            'files': [
728                                '<@(devtools_settings_js_files)',
729                                'front_end/settings/module.json',
730                            ],
731                        }
732                    ]
733                }]
734            ]
735        },
736        {
737            'target_name': 'build_heap_snapshot_worker_module',
738            'type': 'none',
739            'conditions': [
740                ['debug_devtools==0', { # Release
741                    'actions': [{
742                        'action_name': 'build_heap_snapshot_worker_module',
743                        'script_name': 'scripts/inline_js_imports.py',
744                        'input_file': 'front_end/profiler/heap_snapshot_worker/HeapSnapshotWorker.js',
745                        'inputs': [
746                            '<@(_script_name)',
747                            '<@(_input_file)',
748                            '<@(devtools_heap_snapshot_worker_js_files)',
749                        ],
750                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js'],
751                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
752                    }],
753                },
754                { # Debug
755                    'copies': [
756                        {
757                            'destination': '<(PRODUCT_DIR)/resources/inspector/profiler/heap_snapshot_worker',
758                            'files': [
759                                '<@(devtools_heap_snapshot_worker_js_files)',
760                            ],
761                        }
762                    ]
763                }]
764            ]
765        },
766        {
767            'target_name': 'build_script_formatter_worker_module',
768            'type': 'none',
769            'conditions': [
770                ['debug_devtools==0', { # Release
771                    'actions': [{
772                        'action_name': 'build_script_formatter_worker_module',
773                        'script_name': 'scripts/inline_js_imports.py',
774                        'input_file': 'front_end/script_formatter_worker/ScriptFormatterWorker.js',
775                        'inputs': [
776                            '<@(_script_name)',
777                            '<@(_input_file)',
778                            '<@(devtools_uglify_files)'
779                        ],
780                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js'],
781                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
782                    }],
783                },
784                { # Debug
785                    'copies': [
786                        {
787                            'destination': '<(PRODUCT_DIR)/resources/inspector/script_formatter_worker',
788                            'files': [
789                                '<@(devtools_script_formatter_worker_js_files)',
790                            ],
791                        },
792                        {
793                            'destination': '<(PRODUCT_DIR)/resources/inspector/UglifyJS',
794                            'files': [
795                                '<@(devtools_uglify_files)',
796                            ],
797                        }
798                    ]
799                }]
800            ]
801        },
802        {
803            'target_name': 'build_temp_storage_shared_worker_module',
804            'type': 'none',
805            'conditions': [
806                ['debug_devtools==0', { # Release
807                    'actions': [{
808                        'action_name': 'build_temp_storage_shared_worker_module',
809                        'script_name': 'scripts/inline_js_imports.py',
810                        'input_file': 'front_end/temp_storage_shared_worker/TempStorageSharedWorker.js',
811                        'inputs': [
812                            '<@(_script_name)',
813                            '<@(devtools_temp_storage_shared_worker_js_files)'
814                        ],
815                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js'],
816                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
817                    }],
818                },
819                { # Debug
820                    'copies': [
821                        {
822                            'destination': '<(PRODUCT_DIR)/resources/inspector/temp_storage_shared_worker',
823                            'files': [
824                                '<@(devtools_temp_storage_shared_worker_js_files)',
825                            ],
826                        }
827                    ]
828                }]
829            ]
830        },
831        {
832            'target_name': 'build_layers_module',
833            'type': 'none',
834            'conditions': [
835                ['debug_devtools==0', { # Release
836                    'actions': [{
837                        'action_name': 'build_layers_module',
838                        'script_name': 'scripts/inline_js_imports.py',
839                        'input_file': 'front_end/layers/LayersPanel.js',
840                        'inputs': [
841                            '<@(_script_name)',
842                            '<@(devtools_layers_js_files)',
843                        ],
844                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/layers/LayersPanel.js'],
845                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)'],
846                    }],
847                },
848                { # Debug
849                    'copies': [
850                        {
851                            'destination': '<(PRODUCT_DIR)/resources/inspector/layers',
852                            'files': [
853                                '<@(devtools_layers_js_files)',
854                                'front_end/layers/module.json',
855                            ],
856                        }
857                    ]
858                }]
859            ]
860        },
861    ], # targets
862    'conditions': [
863        ['debug_devtools==0', {
864            'targets': [
865                {
866                    'target_name': 'concatenated_devtools_css',
867                    'type': 'none',
868                    'dependencies': [
869                        'devtools_html'
870                    ],
871                    'actions': [{
872                        'action_name': 'concatenate_devtools_css',
873                        'script_name': 'scripts/concatenate_css_files.py',
874                        'input_page': 'front_end/inspector.html',
875                        'inputs': [
876                            '<@(_script_name)',
877                            '<@(_input_page)',
878                            '<@(all_devtools_files)',
879                        ],
880                        'search_path': [ 'front_end' ],
881                        'outputs': ['<(PRODUCT_DIR)/resources/inspector/inspector.css'],
882                        'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
883                    }],
884                    'copies': [{
885                        'destination': '<(PRODUCT_DIR)/resources/inspector',
886                        'files': [
887                            '<@(devtools_standalone_files)',
888                        ],
889                    }],
890                },
891                {
892                    'target_name': 'concatenated_module_descriptors',
893                    'type': 'none',
894                    'actions': [{
895                        'action_name': 'concatenated_module_descriptors',
896                        'script_name': 'scripts/concatenate_module_descriptors.py',
897                        'input_file': ['front_end/common/modules.js'],
898                        'inputs': [
899                            '<@(_script_name)',
900                            '<@(_input_file)',
901                            '<@(devtools_module_json_files)',
902                        ],
903                        'outputs': ['<(SHARED_INTERMEDIATE_DIR)/blink/common/modules.js'],
904                        'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_outputs)', '<@(devtools_module_json_files)'],
905                    }],
906                },
907            ],
908        }],
909    ], # conditions
910}
911