Chromium Code Reviews| Index: Source/devtools/BUILD.gn |
| diff --git a/Source/devtools/BUILD.gn b/Source/devtools/BUILD.gn |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..de2cb08d77a87b2380d0a4ffcd395fda35b3a1ee |
| --- /dev/null |
| +++ b/Source/devtools/BUILD.gn |
| @@ -0,0 +1,386 @@ |
| +# 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. |
| + |
| +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_js_files = gypi_values.devtools_core_base_js_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_js_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 |
| + |
| +devtools_extensions_js_files = gypi_values.devtools_extensions_js_files - |
| + [ "<@(devtools_extension_api_files)" ] + |
| + gypi_values.devtools_extension_api_files |
| + |
| +devtools_modules_js_files = |
| + gypi_values.devtools_console_js_files + |
| + gypi_values.devtools_search_js_files + |
| + gypi_values.devtools_devices_js_files + |
| + gypi_values.devtools_elements_js_files + |
| + devtools_extensions_js_files + |
| + gypi_values.devtools_resources_js_files + |
| + gypi_values.devtools_network_js_files + |
| + gypi_values.devtools_source_frame_js_files + |
| + gypi_values.devtools_sources_js_files + |
| + gypi_values.devtools_timeline_js_files + |
| + gypi_values.devtools_profiler_js_files + |
| + gypi_values.devtools_audits_js_files + |
| + gypi_values.devtools_layers_js_files + |
| + gypi_values.devtools_heap_snapshot_worker_js_files + |
| + gypi_values.devtools_temp_storage_shared_worker_js_files + |
| + gypi_values.devtools_script_formatter_worker_js_files + |
| + gypi_values.devtools_uglify_files |
| + |
| +all_devtools_files = |
| + devtools_core_js_files + |
| + devtools_modules_js_files + |
| + gypi_values.devtools_cm_css_files + |
| + gypi_values.devtools_cm_js_files + |
| + gypi_values.devtools_module_json_files |
| + |
| +#------------------------------------------------------------------------------- |
| + |
| +visibility = "//third_party/WebKit/*" |
|
jamesr
2014/06/04 06:14:13
the general convention for third_party/WebKit is t
brettw
2014/06/04 16:54:33
Yeah, we should do this.
|
| + |
| +# 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 = [ |
| + ":devtools_html", |
| + ":supported_css_properties", |
| + ":frontend_protocol_sources", |
| + ":build_audits_module", |
| + ":build_core_module", |
| + ":build_console_module", |
| + ":build_devices_module", |
| + ":build_elements_module", |
| + ":build_extensions_module", |
| + ":build_layers_module", |
| + ":build_network_module", |
| + ":build_profiler_module", |
| + ":build_resources_module", |
| + ":build_search_module", |
| + ":build_settings_module", |
| + ":build_source_frame_module", |
| + ":build_sources_module", |
| + ":build_timeline_module", |
| + ":build_heap_snapshot_worker_module", |
| + ":build_script_formatter_worker_module", |
| + ":build_temp_storage_shared_worker_module", |
| + ] |
| + |
| + if (debug_devtools) { |
| + deps += [ ":concatenated_devtools_css" ] |
| + } |
| + |
| + # TODO(GYP) |
| + # 'copies': [{ |
|
jamesr
2014/06/04 06:14:13
is this just
copy("devtools_frontend_resources_co
brettw
2014/06/04 16:54:33
Yes, added.
|
| + # 'destination': '<(PRODUCT_DIR)/resources/inspector/Images', |
| + # 'files': [ '<@(devtools_image_files)', ], |
| + # }], |
| +} |
| + |
| +# 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/main/Main.js", |
| + "$root_out_dir/resources/inspector/search/AdvancedSearchView.js", |
| + "$root_out_dir/resources/inspector/console/ConsolePanel.js", |
| + "$root_out_dir/resources/inspector/elements/ElementsPanel.js", |
| + "$root_out_dir/resources/inspector/extensions/ExtensionServer.js", |
| + "$root_out_dir/resources/inspector/resources/ResourcesPanel.js", |
| + "$root_out_dir/resources/inspector/network/NetworkPanel.js", |
| + "$root_out_dir/resources/inspector/source_frame/SourceFrame.js", |
| + "$root_out_dir/resources/inspector/sources/SourcesPanel.js", |
| + "$root_out_dir/resources/inspector/timeline/TimelinePanel.js", |
| + "$root_out_dir/resources/inspector/profiler/ProfilesPanel.js", |
| + "$root_out_dir/resources/inspector/audits/AuditsPanel.js", |
| + "$root_out_dir/resources/inspector/layers/LayersPanel.js", |
| + "$root_out_dir/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js", |
| + "$root_out_dir/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js", |
| + "$root_out_dir/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js", |
| + "$root_out_dir/resources/inspector/devices/DevicesView.js", |
| + "$root_out_dir/resources/inspector/inspector.css", |
| + "$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" |
| + |
| + source_prereqs = 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" |
| + |
| + source_prereqs = [ "front_end/inspector.html"] |
| + outputs = [ "$root_out_dir/resources/inspector/devtools.html"] |
| + |
| + args = rebase_path(source_prereqs, 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" |
| + |
| + source_prereqs = 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" |
| + |
| + source_prereqs = [ |
| + "../core/css/CSSPropertyNames.in", |
| + "../core/css/SVGCSSPropertyNames.in", |
| + "../core/css/CSSShorthands.in", |
| + ] |
| + |
| + outputs = [ |
| + "$root_gen_dir/blink/SupportedCSSProperties.js" |
| + ] |
| + |
| + args = rebase_path(source_prereqs, root_build_dir) + |
| + rebase_path(outputs, root_build_dir) |
| +} |
| + |
| +action("frontend_protocol_sources") { |
| + script = "scripts/CodeGeneratorFrontend.py" |
| + |
| + source_prereqs = [ "protocol.json" ] |
| + outputs = [ "$root_gen_dir/blink/InspectorBackendCommands.js" ] |
| + |
| + args = rebase_path(source_prereqs, root_build_dir) + [ |
| + "--output_js_dir", rebase_path("$root_gen_dir/blink", root_build_dir), |
| + ] |
| +} |
| + |
| +# Runs the inline_js_imports script. |
| +# input: (String) The input .js file to read. |
| +# imported_files: (List of strings) The list of files the input depends on. |
| +# output: (String) The .js file to write. |
| +template("inline_js_imports") { |
| + assert(defined(invoker.input), target_name) |
| + assert(defined(invoker.imported_files), target_name) |
| + assert(defined(invoker.output), target_name) |
| + |
| + action(target_name) { |
| + script = "scripts/inline_js_imports.py" |
| + |
| + source_prereqs = [ invoker.input ] + invoker.imported_files |
| + outputs = [ invoker.output ] |
| + |
| + args = [ |
| + rebase_path(invoker.input, root_build_dir), |
| + rebase_path(invoker.output, root_build_dir), |
| + ] |
| + } |
| +} |
| + |
| +inline_js_imports("build_audits_module") { |
| + input = "front_end/audits/AuditsPanel.js" |
| + imported_files = gypi_values.devtools_audits_js_files |
| + output = "$root_out_dir/resources/inspector/audits/AuditsPanel.js" |
| +} |
| + |
| +action("build_core_module") { |
| + script = "scripts/concatenate_js_files.py" |
| + input_page = "front_end/inspector.html" |
| + source_prereqs = [ |
| + input_page, |
| + "$root_gen_dir/blink/InspectorBackendCommands.js", |
| + "$root_gen_dir/blink/SupportedCSSProperties.js", |
| + "$root_gen_dir/blink/common/modules.js", |
| + ] + devtools_core_js_files |
| + |
| + search_path = [ |
| + "$root_gen_dir/blink", |
| + "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_console_module") { |
| + input = "front_end/console/ConsolePanel.js" |
| + imported_files = gypi_values.devtools_console_js_files |
| + output = "$root_out_dir/resources/inspector/console/ConsolePanel.js" |
| +} |
| + |
| +inline_js_imports("build_devices_module") { |
| + input = "front_end/devices/DevicesView.js" |
| + imported_files = gypi_values.devtools_devices_js_files |
| + output = "$root_out_dir/resources/inspector/devices/DevicesView.js" |
| +} |
| + |
| +inline_js_imports("build_elements_module") { |
| + input = "front_end/elements/ElementsPanel.js" |
| + imported_files = gypi_values.devtools_elements_js_files |
| + output = "$root_out_dir/resources/inspector/elements/ElementsPanel.js" |
| +} |
| + |
| +inline_js_imports("build_extensions_module") { |
| + input = "front_end/extensions/ExtensionServer.js" |
| + imported_files = devtools_extensions_js_files |
| + output = "$root_out_dir/resources/inspector/extensions/ExtensionServer.js" |
| +} |
| + |
| +inline_js_imports("build_layers_module") { |
| + input = "front_end/layers/LayersPanel.js" |
| + imported_files = gypi_values.devtools_layers_js_files |
| + output = "$root_out_dir/resources/inspector/layers/LayersPanel.js" |
| +} |
| + |
| +inline_js_imports("build_network_module") { |
| + input = "front_end/network/NetworkPanel.js" |
| + imported_files = gypi_values.devtools_network_js_files |
| + output = "$root_out_dir/resources/inspector/network/NetworkPanel.js" |
| +} |
| + |
| +inline_js_imports("build_profiler_module") { |
| + input = "front_end/profiler/ProfilesPanel.js" |
| + imported_files = gypi_values.devtools_profiler_js_files |
| + output = "$root_out_dir/resources/inspector/profiler/ProfilesPanel.js" |
| +} |
| + |
| +inline_js_imports("build_resources_module") { |
| + input = "front_end/resources/ResourcesPanel.js" |
| + imported_files = gypi_values.devtools_resources_js_files |
| + output = "$root_out_dir/resources/inspector/resources/ResourcesPanel.js" |
| +} |
| + |
| +inline_js_imports("build_search_module") { |
| + input = "front_end/search/AdvancedSearchView.js" |
| + imported_files = gypi_values.devtools_search_js_files |
| + output = "$root_out_dir/resources/inspector/search/AdvancedSearchView.js" |
| +} |
| + |
| +inline_js_imports("build_settings_module") { |
| + input = "front_end/settings/SettingsScreen.js" |
| + imported_files = gypi_values.devtools_settings_js_files |
| + output = "$root_out_dir/resources/inspector/settings/SettingsScreen.js" |
| +} |
| + |
| +inline_js_imports("build_source_frame_module") { |
| + input = "front_end/source_frame/SourceFrame.js" |
| + imported_files = gypi_values.devtools_source_frame_js_files + |
| + gypi_values.devtools_cm_js_files |
| + output = "$root_out_dir/resources/inspector/source_frame/SourceFrame.js" |
| +} |
| + |
| +inline_js_imports("build_sources_module") { |
| + input = "front_end/sources/SourcesPanel.js" |
| + imported_files = gypi_values.devtools_sources_js_files |
| + output = "$root_out_dir/resources/inspector/sources/SourcesPanel.js" |
| +} |
| + |
| +inline_js_imports("build_timeline_module") { |
| + input = "front_end/timeline/TimelinePanel.js" |
| + imported_files = gypi_values.devtools_timeline_js_files |
| + output = "$root_out_dir/resources/inspector/timeline/TimelinePanel.js" |
| +} |
| + |
| +inline_js_imports("build_heap_snapshot_worker_module") { |
| + input = "front_end/profiler/heap_snapshot_worker/HeapSnapshotWorker.js" |
| + imported_files = gypi_values.devtools_heap_snapshot_worker_js_files |
| + output = "$root_out_dir/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js" |
| +} |
| + |
| +inline_js_imports("build_script_formatter_worker_module") { |
| + input = "front_end/script_formatter_worker/ScriptFormatterWorker.js" |
| + imported_files = gypi_values.devtools_uglify_files |
| + output = "$root_out_dir/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js" |
| +} |
| + |
| +inline_js_imports("build_temp_storage_shared_worker_module") { |
| + input = "front_end/temp_storage_shared_worker/TempStorageSharedWorker.js" |
| + imported_files = gypi_values.devtools_temp_storage_shared_worker_js_files |
| + output = "$root_out_dir/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js" |
| +} |
| + |
| +action("concatenated_module_descriptors") { |
| + script = "scripts/concatenate_module_descriptors.py" |
| + |
| + input = "front_end/common/modules.js" |
| + source_prereqs = [ input ] + gypi_values.devtools_module_json_files |
| + outputs = [ "$root_gen_dir/blink/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_page = "front_end/inspector.html" |
| + source_prereqs = [ input_page ] + all_devtools_files |
| + search_path = [ "front_end" ] |
| + |
| + outputs = [ "$root_out_dir/resources/inspector/inspector.css" ] |
| + |
| + args = [ rebase_path(input_page, root_build_dir) ] + |
| + rebase_path(search_path, root_build_dir) + |
| + rebase_path(outputs, root_build_dir) |
| +} |