blob: 46e904a33874dc0a37e0e4ef9ca7b9cd2787dae3 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
blink_devtools_output_dir = "$root_gen_dir/blink/devtools/"
gypi_values = exec_script(
"//build/gypi_to_gn.py",
[ rebase_path("devtools.gypi") ],
"scope",
[ "devtools.gypi" ])
# Some of the files in the .gypi use GYP variable expansions, go through and
# fix them.
devtools_core_base_files = gypi_values.devtools_core_base_files - [
"<@(devtools_main_js_files)",
"<@(devtools_standalone_files)",
] + gypi_values.devtools_main_js_files + gypi_values.devtools_standalone_files
devtools_core_js_files =
devtools_core_base_files +
gypi_values.devtools_common_js_files +
gypi_values.devtools_sdk_js_files +
gypi_values.devtools_ui_js_files +
gypi_values.devtools_components_js_files +
gypi_values.devtools_host_js_files +
gypi_values.devtools_screencast_js_files +
gypi_values.devtools_toolbox_js_files
devtools_extensions_js_files = gypi_values.devtools_extensions_js_files -
[ "<@(devtools_extension_api_files)" ] +
gypi_values.devtools_extension_api_files
#-------------------------------------------------------------------------------
visibility = "//third_party/WebKit/*"
# Probably need to parameterize this. If we set it to true, there will be some
# further work in the scripts below.
debug_devtools = false
group("devtools_frontend_resources") {
deps = [
":build_audits_module",
":build_console_module",
":build_core_module",
":build_devices_module",
":build_elements_module",
":build_extensions_module",
":build_heap_snapshot_worker_module",
":build_layers_module",
":build_network_module",
":build_profiler_module",
":build_resources_module",
":build_script_formatter_worker_module",
":build_settings_module",
":build_source_frame_module",
":build_sources_module",
":build_temp_storage_shared_worker_module",
":build_timeline_module",
":copy_inspector_images",
":devtools_html",
":frontend_protocol_sources",
":supported_css_properties",
]
if (debug_devtools) {
deps += [ ":concatenated_devtools_css" ]
}
}
copy("copy_inspector_images") {
sources = gypi_values.devtools_image_files
outputs = [ "$root_out_dir/resources/inspector/Images/{{source_file_part}}" ]
}
# TODO(GYP) need debug_devtools support (this runs somewhat differently).
action("generate_devtools_grd") {
script = "scripts/generate_devtools_grd.py"
input_pages = [
"$root_out_dir/resources/inspector/devtools.html",
"$root_out_dir/resources/inspector/inspector.css",
"$root_out_dir/resources/inspector/audits/_module.js",
"$root_out_dir/resources/inspector/console/_module.js",
"$root_out_dir/resources/inspector/devices/_module.js",
"$root_out_dir/resources/inspector/elements/_module.js",
"$root_out_dir/resources/inspector/extensions/_module.js",
"$root_out_dir/resources/inspector/heap_snapshot_worker/_module.js",
"$root_out_dir/resources/inspector/layers/_module.js",
"$root_out_dir/resources/inspector/main/Main.js",
"$root_out_dir/resources/inspector/network/_module.js",
"$root_out_dir/resources/inspector/profiler/_module.js",
"$root_out_dir/resources/inspector/resources/_module.js",
"$root_out_dir/resources/inspector/script_formatter_worker/_module.js",
"$root_out_dir/resources/inspector/source_frame/_module.js",
"$root_out_dir/resources/inspector/sources/_module.js",
"$root_out_dir/resources/inspector/temp_storage_shared_worker/_module.js",
"$root_out_dir/resources/inspector/timeline/_module.js",
"$root_out_dir/resources/inspector/devtools_extension_api.js",
] + gypi_values.devtools_standalone_files + gypi_values.devtools_cm_css_files
images = gypi_values.devtools_image_files
images_path = "front_end/Images"
inputs = input_pages + images
outfile = "$root_gen_dir/devtools/devtools_resources.grd"
outputs = [ outfile ]
relative_path_dirs = [
"$root_out_dir/resources/inspector",
"frontend",
]
args = rebase_path(input_pages, root_build_dir) + [
"--relative_path_dirs" ] +
rebase_path(relative_path_dirs, root_build_dir) + [
"--images", rebase_path(images_path, root_build_dir),
"--output", rebase_path(outfile, root_build_dir),
]
deps = [
":devtools_html",
":devtools_extension_api",
":devtools_frontend_resources",
]
}
action("devtools_html") {
script = "scripts/generate_devtools_html.py"
inputs = [ "front_end/inspector.html"]
outputs = [ "$root_out_dir/resources/inspector/devtools.html"]
args = rebase_path(inputs, root_build_dir) +
rebase_path(outputs, root_build_dir)
if (debug_devtools) {
args += [ "1" ]
} else {
args += [ "0" ]
}
}
action("devtools_extension_api") {
script = "scripts/generate_devtools_extension_api.py"
inputs = gypi_values.devtools_extension_api_files
outputs = [ "$root_out_dir/resources/inspector/devtools_extension_api.js" ]
args = rebase_path(outputs, root_build_dir) +
rebase_path(gypi_values.devtools_extension_api_files, root_build_dir)
}
action("supported_css_properties") {
script = "scripts/generate_supported_css.py"
inputs = [
"../core/css/CSSProperties.in",
]
outputs = [
blink_devtools_output_dir + "SupportedCSSProperties.js"
]
args = rebase_path(inputs, root_build_dir) +
rebase_path(outputs, root_build_dir)
}
action("frontend_protocol_sources") {
script = "scripts/CodeGeneratorFrontend.py"
inputs = [ "protocol.json" ]
outputs = [ blink_devtools_output_dir + "InspectorBackendCommands.js" ]
args = rebase_path(inputs, root_build_dir) + [
"--output_js_dir", rebase_path(blink_devtools_output_dir, root_build_dir),
]
}
# Runs the inline_js_imports script.
# module_name: (String) The JS module name to process.
# imported_files: (List of strings) The list of files the input depends on.
template("inline_js_imports") {
assert(defined(invoker.module_name), target_name)
assert(defined(invoker.imported_files), target_name)
action(target_name) {
script = "scripts/inline_js_imports.py"
module_name = invoker.module_name
input = "front_end/" + module_name + "/_module.js"
inputs = [ input ] + invoker.imported_files
output = "$root_out_dir/resources/inspector/" + module_name + "/_module.js"
outputs = [ output ]
args = [
rebase_path(input, root_build_dir),
rebase_path(output, root_build_dir),
]
}
}
inline_js_imports("build_audits_module") {
module_name = "audits"
imported_files = gypi_values.devtools_audits_js_files
}
inline_js_imports("build_console_module") {
module_name = "console"
imported_files = gypi_values.devtools_console_js_files
}
action("build_core_module") {
script = "scripts/concatenate_js_files.py"
input_page = "front_end/inspector.html"
inputs = [
input_page,
blink_devtools_output_dir + "InspectorBackendCommands.js",
blink_devtools_output_dir + "SupportedCSSProperties.js",
blink_devtools_output_dir + "common/modules.js",
] + devtools_core_js_files
search_path = [
blink_devtools_output_dir,
"front_end",
]
outputs = [
"$root_out_dir/resources/inspector/main/Main.js",
]
args = [
rebase_path(input_page, root_build_dir),
]
args += rebase_path(search_path, root_build_dir)
args += rebase_path(outputs, root_build_dir)
deps = [
":devtools_html",
":supported_css_properties",
":frontend_protocol_sources",
":concatenated_module_descriptors",
]
}
inline_js_imports("build_devices_module") {
module_name = "devices"
imported_files = gypi_values.devtools_devices_js_files
}
inline_js_imports("build_documentation_module") {
module_name = "documentation"
imported_files = gypi_values.devtools_documentation_js_files
}
inline_js_imports("build_elements_module") {
module_name = "elements"
imported_files = gypi_values.devtools_elements_js_files
}
inline_js_imports("build_extensions_module") {
module_name = "extensions"
imported_files = devtools_extensions_js_files
}
inline_js_imports("build_heap_snapshot_worker_module") {
module_name = "heap_snapshot_worker"
imported_files = gypi_values.devtools_heap_snapshot_worker_js_files
}
inline_js_imports("build_layers_module") {
module_name = "layers"
imported_files = gypi_values.devtools_layers_js_files
}
inline_js_imports("build_network_module") {
module_name = "network"
imported_files = gypi_values.devtools_network_js_files
}
inline_js_imports("build_profiler_module") {
module_name = "profiler"
imported_files = gypi_values.devtools_profiler_js_files
}
inline_js_imports("build_resources_module") {
module_name = "resources"
imported_files = gypi_values.devtools_resources_js_files
}
inline_js_imports("build_script_formatter_worker_module") {
module_name = "script_formatter_worker"
imported_files = gypi_values.devtools_uglify_files
}
inline_js_imports("build_settings_module") {
module_name = "settings"
imported_files = gypi_values.devtools_settings_js_files
}
inline_js_imports("build_source_frame_module") {
module_name = "source_frame"
imported_files = gypi_values.devtools_source_frame_js_files +
gypi_values.devtools_cm_js_files
}
inline_js_imports("build_sources_module") {
module_name = "sources"
imported_files = gypi_values.devtools_sources_js_files
}
inline_js_imports("build_temp_storage_shared_worker_module") {
module_name = "temp_storage_shared_worker"
imported_files = gypi_values.devtools_temp_storage_shared_worker_js_files
}
inline_js_imports("build_timeline_module") {
module_name = "timeline"
imported_files = gypi_values.devtools_timeline_js_files
}
action("concatenated_module_descriptors") {
script = "scripts/concatenate_module_descriptors.py"
input = "front_end/common/modules.js"
inputs = [ input ] + gypi_values.devtools_module_json_files
outputs = [ blink_devtools_output_dir + "common/modules.js" ]
args = rebase_path([ input ] + outputs + gypi_values.devtools_module_json_files, root_build_dir)
}
action("concatenated_devtools_css") {
script = "scripts/concatenate_css_files.py"
input_stylesheet = "front_end/inspector.css"
inputs = [ input_stylesheet ] + devtools_core_base_files
outputs = [ "$root_out_dir/resources/inspector/inspector.css" ]
args = [ rebase_path(input_stylesheet, root_build_dir) ] +
rebase_path(outputs, root_build_dir)
}