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