Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: Source/devtools/BUILD.gn

Issue 608523002: DevTools: Support debug_devtools=true arg in GN builds (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Comment addressed, a few unrelated bugs fixed Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/BUILD.gn
diff --git a/Source/devtools/BUILD.gn b/Source/devtools/BUILD.gn
index 4982e12a03a93301cd2f33aaf46004c4a1235839..8e4673a266606f129d52a68069d69f7308272ead 100644
--- a/Source/devtools/BUILD.gn
+++ b/Source/devtools/BUILD.gn
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/features.gni")
+
gypi_values = exec_script(
"//build/gypi_to_gn.py",
[ rebase_path("devtools.gypi") ],
@@ -21,8 +23,8 @@ devtools_core_files =
gypi_values.devtools_components_js_files +
gypi_values.devtools_host_js_files +
gypi_values.devtools_main_js_files +
- gypi_values.devtools_sdk_js_files +
gypi_values.devtools_screencast_js_files +
+ gypi_values.devtools_sdk_js_files +
gypi_values.devtools_toolbox_js_files +
gypi_values.devtools_toolbox_bootstrap_js_files +
gypi_values.devtools_ui_js_files +
@@ -60,27 +62,35 @@ all_devtools_files =
devtools_modules_js_files +
gypi_values.devtools_uglify_files
+# FIXME: Fix the generate_devtools_grd.py script to accept trailing slashes.
+resources_out_dir_no_slash = "$root_out_dir/resources/inspector"
+resources_out_dir = resources_out_dir_no_slash + "/"
+
+generated_scripts = [
+ resources_out_dir + "InspectorBackendCommands.js",
+ resources_out_dir + "SupportedCSSProperties.js",
+]
+
#-------------------------------------------------------------------------------
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 = [
- ":copy_inspector_images",
":devtools_html",
":toolbox_html",
+ ":copy_inspector_images",
+ ":copy_standalone_css",
+ ":devtools_extension_api",
":frontend_protocol_sources",
":supported_css_properties",
":build_applications",
]
if (!debug_devtools) {
+ # This overwrites application-specific core CSS (devtools.css),
+ # and thus should be guarded out in Debug builds.
deps += [
- ":copy_standalone_css",
":concatenated_devtools_css",
":concatenated_toolbox_css",
]
@@ -89,40 +99,52 @@ group("devtools_frontend_resources") {
copy("copy_inspector_images") {
sources = gypi_values.devtools_image_files
- outputs = [ "$root_out_dir/resources/inspector/Images/{{source_file_part}}" ]
+ outputs = [ resources_out_dir + "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.css",
- "$root_out_dir/resources/inspector/devtools.html",
- "$root_out_dir/resources/inspector/devtools.js",
- "$root_out_dir/resources/inspector/toolbox.css",
- "$root_out_dir/resources/inspector/toolbox.html",
- "$root_out_dir/resources/inspector/toolbox.js",
- "$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/documentation_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/network_module.js",
- "$root_out_dir/resources/inspector/profiler_module.js",
- "$root_out_dir/resources/inspector/promises_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/settings_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
+ deps = [ ":devtools_frontend_resources" ]
+
+ if (debug_devtools) {
+ # Debug: all files are picked as-is.
+ input_pages = all_devtools_files + generated_scripts + [
+ resources_out_dir + "devtools.html",
+ resources_out_dir + "toolbox.html",
+ ]
+ } else {
+ # Release: pick compiled files and lazy-loaded CSS.
+ input_pages = [
+ resources_out_dir + "devtools.css",
+ resources_out_dir + "devtools.html",
+ resources_out_dir + "devtools.js",
+ resources_out_dir + "toolbox.css",
+ resources_out_dir + "toolbox.html",
+ resources_out_dir + "toolbox.js",
+ resources_out_dir + "audits_module.js",
+ resources_out_dir + "console_module.js",
+ resources_out_dir + "devices_module.js",
+ resources_out_dir + "documentation_module.js",
+ resources_out_dir + "elements_module.js",
+ resources_out_dir + "extensions_module.js",
+ resources_out_dir + "heap_snapshot_worker_module.js",
+ resources_out_dir + "layers_module.js",
+ resources_out_dir + "network_module.js",
+ resources_out_dir + "profiler_module.js",
+ resources_out_dir + "promises_module.js",
+ resources_out_dir + "resources_module.js",
+ resources_out_dir + "script_formatter_worker_module.js",
+ resources_out_dir + "settings_module.js",
+ resources_out_dir + "source_frame_module.js",
+ resources_out_dir + "sources_module.js",
+ resources_out_dir + "temp_storage_shared_worker_module.js",
+ resources_out_dir + "timeline_module.js",
+ resources_out_dir + "devtools_extension_api.js",
+ ]
+ input_pages += gypi_values.devtools_standalone_files +
+ gypi_values.devtools_cm_css_files
+ }
images = gypi_values.devtools_image_files
images_path = "front_end/Images"
@@ -133,7 +155,7 @@ action("generate_devtools_grd") {
outputs = [ outfile ]
relative_path_dirs = [
- "$root_out_dir/resources/inspector",
+ resources_out_dir_no_slash,
"front_end",
]
@@ -143,25 +165,17 @@ action("generate_devtools_grd") {
"--images", rebase_path(images_path, root_build_dir),
"--output", rebase_path(outfile, root_build_dir),
]
-
- deps = [
- ":devtools_html",
- ":toolbox_html",
- ":devtools_extension_api",
- ":devtools_frontend_resources",
- ]
}
template("generate_app_html") {
assert(defined(invoker.app_name), target_name)
+ app_name = invoker.app_name
action(target_name) {
script = "scripts/generate_devtools_html.py"
- inputs = [ "front_end/" + invoker.app_name + ".html"]
- outputs = [
- "$root_out_dir/resources/inspector/" + invoker.app_name + ".html"
- ]
+ inputs = [ "front_end/" + app_name + ".html"]
+ outputs = [ resources_out_dir + app_name + ".html" ]
args = rebase_path(inputs, root_build_dir) +
rebase_path(outputs, root_build_dir)
@@ -186,7 +200,7 @@ 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" ]
+ outputs = [ resources_out_dir + "devtools_extension_api.js" ]
args = rebase_path(outputs, root_build_dir) +
rebase_path(gypi_values.devtools_extension_api_files, root_build_dir)
@@ -195,13 +209,9 @@ action("devtools_extension_api") {
action("supported_css_properties") {
script = "scripts/generate_supported_css.py"
- inputs = [
- "../core/css/CSSProperties.in",
- ]
+ inputs = [ "../core/css/CSSProperties.in" ]
- outputs = [
- "$root_out_dir/resources/inspector/SupportedCSSProperties.js"
- ]
+ outputs = [ resources_out_dir + "SupportedCSSProperties.js" ]
args = rebase_path(inputs, root_build_dir) +
rebase_path(outputs, root_build_dir)
@@ -211,115 +221,339 @@ action("frontend_protocol_sources") {
script = "scripts/CodeGeneratorFrontend.py"
inputs = [ "protocol.json" ]
- outputs = [ "$root_out_dir/resources/inspector/InspectorBackendCommands.js" ]
+ outputs = [ resources_out_dir + "InspectorBackendCommands.js" ]
args = rebase_path(inputs, root_build_dir) + [
"--output_js_dir",
- rebase_path("$root_out_dir/resources/inspector", root_build_dir),
+ rebase_path(resources_out_dir, root_build_dir),
]
}
-action("build_applications") {
- script = "scripts/build_applications.py"
- helper_scripts = [
- "scripts/modular_build.py",
- "scripts/concatenate_application_code.py",
- ]
+group("build_applications") {
+ if (!debug_devtools) {
+ # Release: concatenate application code. This overwrites
+ # application-specific scripts (devtools.js), and thus should be guarded.
+ action("build_applications_release") {
+ script = "scripts/build_applications.py"
+ helper_scripts = [
+ "scripts/modular_build.py",
+ "scripts/concatenate_application_code.py",
+ ]
+
+ inputs = helper_scripts + all_devtools_files + generated_scripts
+
+ outputs = [
+ resources_out_dir + "devtools.js",
+ resources_out_dir + "toolbox.js",
+ resources_out_dir + "audits_module.js",
+ resources_out_dir + "console_module.js",
+ resources_out_dir + "devices_module.js",
+ resources_out_dir + "documentation_module.js",
+ resources_out_dir + "elements_module.js",
+ resources_out_dir + "extensions_module.js",
+ resources_out_dir + "heap_snapshot_worker_module.js",
+ resources_out_dir + "layers_module.js",
+ resources_out_dir + "network_module.js",
+ resources_out_dir + "profiler_module.js",
+ resources_out_dir + "promises_module.js",
+ resources_out_dir + "resources_module.js",
+ resources_out_dir + "script_formatter_worker_module.js",
+ resources_out_dir + "settings_module.js",
+ resources_out_dir + "source_frame_module.js",
+ resources_out_dir + "sources_module.js",
+ resources_out_dir + "temp_storage_shared_worker_module.js",
+ resources_out_dir + "timeline_module.js",
+ ]
+
+ args = [
+ "devtools", "toolbox",
+ "--input_path", rebase_path("front_end", root_build_dir),
+ "--output_path", rebase_path(resources_out_dir, root_build_dir),
+ "--debug", "0"
+ ]
+
+ deps = [
+ ":supported_css_properties",
+ ":frontend_protocol_sources",
+ ]
+ }
+ deps = [
+ ":build_applications_release"
+ ]
+ } else {
+ deps = [
+ ":copy_debug_modules"
+ ]
+ }
+}
- generated_inputs = [
- "$root_out_dir/resources/inspector/InspectorBackendCommands.js",
- "$root_out_dir/resources/inspector/SupportedCSSProperties.js",
- ]
+copy("copy_codemirror_css") {
+ sources = gypi_values.devtools_cm_css_files
+ outputs = [ resources_out_dir + "cm/{{source_file_part}}" ]
+}
- inputs = helper_scripts + all_devtools_files + generated_inputs
-
- output_path = "$root_out_dir/resources/inspector/"
- outputs = [
- output_path + "devtools.js",
- output_path + "toolbox.js",
- output_path + "audits_module.js",
- output_path + "console_module.js",
- output_path + "devices_module.js",
- output_path + "documentation_module.js",
- output_path + "elements_module.js",
- output_path + "extensions_module.js",
- output_path + "heap_snapshot_worker_module.js",
- output_path + "layers_module.js",
- output_path + "network_module.js",
- output_path + "profiler_module.js",
- output_path + "promises_module.js",
- output_path + "resources_module.js",
- output_path + "script_formatter_worker_module.js",
- output_path + "settings_module.js",
- output_path + "source_frame_module.js",
- output_path + "sources_module.js",
- output_path + "temp_storage_shared_worker_module.js",
- output_path + "timeline_module.js",
- ]
+copy("copy_standalone_css") {
+ sources = gypi_values.devtools_standalone_files
+ outputs = [ resources_out_dir + "{{source_file_part}}" ]
- if (debug_devtools) {
- debug_flag = "1"
- } else {
- debug_flag = "0"
+ deps = [ ":copy_codemirror_css" ]
+}
+
+if (debug_devtools) {
+ # Debug: copy front-end into resources_out_dir as-is.
+ group("copy_debug_modules") {
+ deps = [
+ ":copy_audits_module",
+ ":copy_bindings_module",
+ ":copy_common_module",
+ ":copy_components_module",
+ ":copy_console_module",
+ ":copy_devices_module",
+ ":copy_documentation_module",
+ ":copy_elements_module",
+ ":copy_extensions_module",
+ ":copy_heap_snapshot_worker_module",
+ ":copy_host_module",
+ ":copy_layers_module",
+ ":copy_main_module",
+ ":copy_network_module",
+ ":copy_profiler_module",
+ ":copy_promises_module",
+ ":copy_resources_module",
+ ":copy_screencast_module",
+ ":copy_script_formatter_worker_module",
+ ":copy_sdk_module",
+ ":copy_settings_module",
+ ":copy_source_frame_module",
+ ":copy_sources_module",
+ ":copy_temp_storage_shared_worker_module",
+ ":copy_timeline_module",
+ ":copy_toolbox_module",
+ ":copy_toolbox_bootstrap_module",
+ ":copy_ui_module",
+ ":copy_workspace_module",
+ ]
+
+ copy("copy_runtime_core") {
+ sources = devtools_core_base_files -
+ gypi_values.devtools_standalone_files
+ outputs = [ resources_out_dir + "/{{source_file_part}}" ]
+ }
+ deps += [ ":copy_runtime_core" ]
}
- app_names = [
- "devtools",
- "toolbox"
- ]
+ # Copies module contents into resources_out_dir in debug_devtools=1 builds.
+ # module_name: (String) The JS module name to process.
+ # imported_files: (List of strings) The list of files the input depends on.
+ template("copy_debug_module") {
+ assert(defined(invoker.module_name), target_name)
+ assert(defined(invoker.imported_files), target_name)
- args = app_names + [
- "--input_path", rebase_path("front_end", root_build_dir),
- "--output_path", rebase_path(output_path, root_build_dir),
- "--debug", debug_flag
- ]
+ imported_files = invoker.imported_files
+ module_name = invoker.module_name
+ module_json = "front_end/" + module_name + "/module.json"
+
+ copy(target_name) {
+ sources = [ module_json ] + imported_files
+ outputs = [ resources_out_dir + module_name + "/{{source_file_part}}" ]
+ }
+ }
- deps = []
+ copy_debug_module("copy_audits_module") {
+ module_name = "audits"
+ imported_files = gypi_values.devtools_audits_js_files
+ }
- if (!debug_devtools) {
- deps += [
- ":devtools_html",
- ":toolbox_html",
- ":supported_css_properties",
- ":frontend_protocol_sources",
+ copy_debug_module("copy_bindings_module") {
+ module_name = "bindings"
+ imported_files = gypi_values.devtools_bindings_js_files
+ }
+
+ copy_debug_module("copy_common_module") {
+ module_name = "common"
+ imported_files = gypi_values.devtools_common_js_files
+ }
+
+ copy_debug_module("copy_components_module") {
+ module_name = "components"
+ imported_files = gypi_values.devtools_components_js_files
+ }
+
+ copy_debug_module("copy_console_module") {
+ module_name = "console"
+ imported_files = gypi_values.devtools_console_js_files
+ }
+
+ copy_debug_module("copy_devices_module") {
+ module_name = "devices"
+ imported_files = gypi_values.devtools_devices_js_files
+ }
+
+ copy_debug_module("copy_documentation_module") {
+ module_name = "documentation"
+ imported_files = gypi_values.devtools_documentation_js_files
+ }
+
+ copy_debug_module("copy_elements_module") {
+ module_name = "elements"
+ imported_files = gypi_values.devtools_elements_js_files
+ }
+
+ copy_debug_module("copy_extensions_module") {
+ module_name = "extensions"
+ imported_files = devtools_extensions_js_files
+ }
+
+ copy_debug_module("copy_heap_snapshot_worker_module") {
+ module_name = "heap_snapshot_worker"
+ imported_files = gypi_values.devtools_heap_snapshot_worker_js_files
+ }
+
+ copy_debug_module("copy_host_module") {
+ module_name = "host"
+ imported_files = gypi_values.devtools_host_js_files
+ }
+
+ copy_debug_module("copy_layers_module") {
+ module_name = "layers"
+ imported_files = gypi_values.devtools_layers_js_files
+ }
+
+ copy_debug_module("copy_main_module") {
+ module_name = "main"
+ imported_files = gypi_values.devtools_main_js_files
+ }
+
+ copy_debug_module("copy_network_module") {
+ module_name = "network"
+ imported_files = gypi_values.devtools_network_js_files
+ }
+
+ copy_debug_module("copy_profiler_module") {
+ module_name = "profiler"
+ imported_files = gypi_values.devtools_profiler_js_files
+ }
+
+ copy_debug_module("copy_promises_module") {
+ module_name = "promises"
+ imported_files = gypi_values.devtools_promises_js_files
+ }
+
+ copy_debug_module("copy_resources_module") {
+ module_name = "resources"
+ imported_files = gypi_values.devtools_resources_js_files
+ }
+
+ copy_debug_module("copy_screencast_module") {
+ module_name = "screencast"
+ imported_files = gypi_values.devtools_screencast_js_files
+ }
+
+ group("copy_script_formatter_worker_module") {
+ copy_debug_module("copy_script_formatter_worker_module_base") {
+ module_name = "script_formatter_worker"
+ imported_files = gypi_values.devtools_uglify_files +
+ gypi_values.devtools_script_formatter_worker_js_files
+ }
+
+ copy("copy_uglify_js_files") {
+ sources = gypi_values.devtools_uglify_files
+ outputs = [ resources_out_dir + "UglifyJS/{{source_file_part}}" ]
+ }
+
+ deps = [
+ ":copy_script_formatter_worker_module_base",
+ ":copy_uglify_js_files"
]
}
-}
-template("concatenate_css") {
- assert(defined(invoker.app_name), target_name)
+ copy_debug_module("copy_sdk_module") {
+ module_name = "sdk"
+ imported_files = gypi_values.devtools_sdk_js_files
+ }
- action(target_name) {
- script = "scripts/concatenate_css_files.py"
+ copy_debug_module("copy_settings_module") {
+ module_name = "settings"
+ imported_files = gypi_values.devtools_settings_js_files
+ }
- input_stylesheet = "front_end/" + invoker.app_name + ".css"
- inputs = [ input_stylesheet ] + devtools_core_base_files
+ group("copy_source_frame_module") {
+ copy_debug_module("copy_source_frame_module_base") {
+ module_name = "source_frame"
+ imported_files = gypi_values.devtools_source_frame_js_files
+ }
+
+ copy("copy_codemirror_js_files") {
+ sources = gypi_values.devtools_cm_js_files
+ outputs = [ resources_out_dir + "cm/{{source_file_part}}" ]
+ }
- outputs = [
- "$root_out_dir/resources/inspector/" + invoker.app_name + ".css"
+ deps = [
+ ":copy_source_frame_module_base",
+ ":copy_codemirror_js_files",
]
+ }
- args = [ rebase_path(input_stylesheet, root_build_dir) ] +
- rebase_path(outputs, root_build_dir)
+ copy_debug_module("copy_sources_module") {
+ module_name = "sources"
+ imported_files = gypi_values.devtools_sources_js_files
}
-}
-concatenate_css("concatenated_devtools_css") {
- app_name = "devtools"
-}
+ copy_debug_module("copy_temp_storage_shared_worker_module") {
+ module_name = "temp_storage_shared_worker"
+ imported_files = gypi_values.devtools_temp_storage_shared_worker_js_files
+ }
-concatenate_css("concatenated_toolbox_css") {
- app_name = "toolbox"
-}
+ copy_debug_module("copy_timeline_module") {
+ module_name = "timeline"
+ imported_files = gypi_values.devtools_timeline_js_files
+ }
-copy("copy_codemirror_css") {
- sources = gypi_values.devtools_cm_css_files
- outputs = [ "$root_out_dir/resources/inspector/cm/{{source_file_part}}" ]
+ copy_debug_module("copy_toolbox_module") {
+ module_name = "toolbox"
+ imported_files = gypi_values.devtools_toolbox_js_files
+ }
+
+ copy_debug_module("copy_toolbox_bootstrap_module") {
+ module_name = "toolbox_bootstrap"
+ imported_files = gypi_values.devtools_toolbox_bootstrap_js_files
+ }
+
+ copy_debug_module("copy_ui_module") {
+ module_name = "ui"
+ imported_files = gypi_values.devtools_ui_js_files
+ }
+
+ copy_debug_module("copy_workspace_module") {
+ module_name = "workspace"
+ imported_files = gypi_values.devtools_workspace_js_files
+ }
}
-copy("copy_standalone_css") {
- sources = gypi_values.devtools_standalone_files
- outputs = [ "$root_out_dir/resources/inspector/{{source_file_part}}" ]
+if (!debug_devtools) {
+ # Release: Concatenate application CSS.
+ template("concatenate_css") {
+ assert(defined(invoker.app_name), target_name)
+ app_name = invoker.app_name
+
+ action(target_name) {
+ script = "scripts/concatenate_css_files.py"
+
+ input_stylesheet = "front_end/" + app_name + ".css"
+ inputs = [ input_stylesheet ] + devtools_core_base_files
- deps = [ ":copy_codemirror_css" ]
+ outputs = [ resources_out_dir + app_name + ".css" ]
+
+ args = [ rebase_path(input_stylesheet, root_build_dir) ] +
+ rebase_path(outputs, root_build_dir)
+ }
+ }
+
+ concatenate_css("concatenated_devtools_css") {
+ app_name = "devtools"
+ }
+
+ concatenate_css("concatenated_toolbox_css") {
+ app_name = "toolbox"
+ }
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698