blob: c17dd319d320c6b3ced61bfc8266e77953378a2e [file] [log] [blame]
#
# Copyright (C) 2013 Google Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
{
'includes': [
'devtools.gypi',
],
'targets': [
{
'target_name': 'devtools_frontend_resources',
'type': 'none',
'dependencies': [
'devtools_html',
'frontend_protocol_sources',
],
'conditions': [
['debug_devtools==0', {
'dependencies': ['concatenated_devtools_js',
'concatenated_devtools_elements_js',
'concatenated_devtools_resources_js',
'concatenated_devtools_network_js',
'concatenated_devtools_scripts_js',
'concatenated_devtools_timeline_js',
'concatenated_devtools_profiles_js',
'concatenated_devtools_audits_js',
'concatenated_devtools_codemirror_js',
'concatenated_devtools_layers_js',
'concatenated_heap_snapshot_worker_js',
'concatenated_script_formatter_worker_js',
'concatenated_devtools_css'],
}],
],
'copies': [
{
'destination': '<(PRODUCT_DIR)/resources/inspector',
'files': [
'<@(devtools_files)',
'<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
],
'conditions': [
['debug_devtools==0', {
'files/': [['exclude', '\\.(js|css|html)$']],
}],
],
},
{
'destination': '<(PRODUCT_DIR)/resources/inspector/UglifyJS',
'files': [
'<@(devtools_uglify_files)',
],
'conditions': [
['debug_devtools==0', {
'files/': [['exclude', '\\.(js|css|html)$']],
}],
],
},
{
'destination': '<(PRODUCT_DIR)/resources/inspector/cm',
'files': [
'<@(devtools_cm_files)',
],
'conditions': [
['debug_devtools==0', {
'files/': [['exclude', '\\.(js|css|html)$']],
}],
],
},
{
'destination': '<(PRODUCT_DIR)/resources/inspector/Images',
'files': [
'<@(devtools_image_files)',
],
},
],
},
{
'target_name': 'devtools_html',
'type': 'none',
'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
'actions': [{
'action_name': 'devtools_html',
'script_name': 'scripts/generate_devtools_html.py',
'input_page': 'front_end/inspector.html',
'inputs': [
'<@(_script_name)',
'<@(_input_page)',
],
'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)'],
}],
},
{
'target_name': 'devtools_extension_api',
'type': 'none',
'actions': [{
'action_name': 'devtools_html',
'script_name': 'scripts/generate_devtools_extension_api.py',
'inputs': [
'<@(_script_name)',
'<@(devtools_extension_api_files)',
],
'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js'],
'action': ['python', '<@(_script_name)', '<@(_outputs)', '<@(devtools_extension_api_files)'],
}],
},
{
'target_name': 'generate_devtools_grd',
'type': 'none',
'dependencies': [
'devtools_html',
'devtools_extension_api'
],
'conditions': [
['debug_devtools==0', {
'dependencies': ['concatenated_devtools_js',
'concatenated_devtools_elements_js',
'concatenated_devtools_resources_js',
'concatenated_devtools_network_js',
'concatenated_devtools_scripts_js',
'concatenated_devtools_timeline_js',
'concatenated_devtools_profiles_js',
'concatenated_devtools_audits_js',
'concatenated_devtools_codemirror_js',
'concatenated_devtools_layers_js',
'concatenated_heap_snapshot_worker_js',
'concatenated_script_formatter_worker_js',
'concatenated_devtools_css'],
'actions': [{
'action_name': 'generate_devtools_grd',
'script_name': 'scripts/generate_devtools_grd.py',
'input_pages': [
'<(PRODUCT_DIR)/resources/inspector/devtools.html',
'<(PRODUCT_DIR)/resources/inspector/inspector.js',
'<(PRODUCT_DIR)/resources/inspector/ElementsPanel.js',
'<(PRODUCT_DIR)/resources/inspector/ResourcesPanel.js',
'<(PRODUCT_DIR)/resources/inspector/NetworkPanel.js',
'<(PRODUCT_DIR)/resources/inspector/SourcesPanel.js',
'<(PRODUCT_DIR)/resources/inspector/TimelinePanel.js',
'<(PRODUCT_DIR)/resources/inspector/ProfilesPanel.js',
'<(PRODUCT_DIR)/resources/inspector/AuditsPanel.js',
'<(PRODUCT_DIR)/resources/inspector/LayersPanel.js',
'<(PRODUCT_DIR)/resources/inspector/CodeMirrorTextEditor.js',
'<(PRODUCT_DIR)/resources/inspector/HeapSnapshotWorker.js',
'<(PRODUCT_DIR)/resources/inspector/ScriptFormatterWorker.js',
'<(PRODUCT_DIR)/resources/inspector/inspector.css',
'<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js',
'<@(devtools_standalone_files)',
],
'images': [
'<@(devtools_image_files)',
],
'inputs': [
'<@(_script_name)',
'<@(_input_pages)',
'<@(_images)',
],
'search_path': [
'front_end/Images',
],
'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'],
}],
},
{
# If we're not concatenating devtools files, we want to
# run after the original files have been copied to
# <(PRODUCT_DIR)/resources/inspector.
'dependencies': ['devtools_frontend_resources'],
'actions': [{
'action_name': 'generate_devtools_grd',
'script_name': 'scripts/generate_devtools_grd.py',
'input_pages': [
'<@(devtools_files)',
'<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
'<(PRODUCT_DIR)/resources/inspector/devtools.html',
],
'images': [
'<@(devtools_image_files)',
],
'inputs': [
'<@(_script_name)',
'<@(_input_pages)',
'<@(_images)',
],
'search_path': [
'front_end/Images',
],
# Note that other files are put under /devtools directory, together with declared devtools_resources.grd
'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'],
}],
}],
],
},
{
'target_name': 'frontend_protocol_sources',
'type': 'none',
'actions': [
{
'action_name': 'generateInspectorProtocolFrontendSources',
'inputs': [
# The python script in action below.
'scripts/CodeGeneratorFrontend.py',
# Input file for the script.
'protocol.json',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
],
'action': [
'python',
'scripts/CodeGeneratorFrontend.py',
'protocol.json',
'--output_js_dir', '<(SHARED_INTERMEDIATE_DIR)/blink',
],
'message': 'Generating Inspector protocol frontend sources from protocol.json',
'msvs_cygwin_shell': 1,
},
]
},
], # targets
'conditions': [
['debug_devtools==0', {
'targets': [
{
'target_name': 'concatenated_devtools_js',
'type': 'none',
'dependencies': [
'devtools_html',
'frontend_protocol_sources'
],
'actions': [{
'action_name': 'concatenate_devtools_js',
'script_name': 'scripts/concatenate_js_files.py',
'input_page': 'front_end/inspector.html',
'inputs': [
'<@(_script_name)',
'<@(_input_page)',
'<@(devtools_files)',
'<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js'
],
'search_path': [
'front_end',
'<(SHARED_INTERMEDIATE_DIR)/blink',
],
'outputs': ['<(PRODUCT_DIR)/resources/inspector/inspector.js'],
'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_elements_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_elements_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/ElementsPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_elements_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/ElementsPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_resources_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_resources_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/ResourcesPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_resources_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/ResourcesPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_network_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_network_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/NetworkPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_network_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/NetworkPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_scripts_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_scripts_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/SourcesPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_scripts_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/SourcesPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_timeline_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_timeline_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/TimelinePanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_timeline_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/TimelinePanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_profiles_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_profiles_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/ProfilesPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_profiles_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/ProfilesPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_audits_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_audits_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/AuditsPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_audits_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/AuditsPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_codemirror_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_codemirror_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/CodeMirrorTextEditor.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_codemirror_js_files)',
'<@(devtools_cm_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/CodeMirrorTextEditor.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_heap_snapshot_worker_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_heap_snapshot_worker_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/HeapSnapshotWorker.js',
'inputs': [
'<@(_script_name)',
'<@(_input_file)',
'front_end/AllocationProfile.js',
'front_end/HeapSnapshot.js',
'front_end/HeapSnapshotLoader.js',
'front_end/HeapSnapshotWorkerDispatcher.js',
'front_end/JSHeapSnapshot.js',
'front_end/utilities.js',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/HeapSnapshotWorker.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_script_formatter_worker_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_script_formatter_worker_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/ScriptFormatterWorker.js',
'inputs': [
'<@(_script_name)',
'<@(_input_file)',
'<@(devtools_uglify_files)'
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/ScriptFormatterWorker.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_layers_js',
'type': 'none',
'actions': [{
'action_name': 'concatenate_devtools_layers_js',
'script_name': 'scripts/inline_js_imports.py',
'input_file': 'front_end/LayersPanel.js',
'inputs': [
'<@(_script_name)',
'<@(devtools_layers_js_files)',
],
'search_path': 'front_end',
'outputs': ['<(PRODUCT_DIR)/resources/inspector/LayersPanel.js'],
'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
}],
},
{
'target_name': 'concatenated_devtools_css',
'type': 'none',
'dependencies': [
'devtools_html'
],
'actions': [{
'action_name': 'concatenate_devtools_css',
'script_name': 'scripts/concatenate_css_files.py',
'input_page': 'front_end/inspector.html',
'inputs': [
'<@(_script_name)',
'<@(_input_page)',
'<@(devtools_files)',
],
'search_path': [ 'front_end' ],
'outputs': ['<(PRODUCT_DIR)/resources/inspector/inspector.css'],
'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
}],
'copies': [{
'destination': '<(PRODUCT_DIR)/resources/inspector',
'files': [
'<@(devtools_standalone_files)',
],
}],
},
],
}],
], # conditions
}