1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 gypi_values = exec_script(
6 "//build/gypi_to_gn.py",
7 [ rebase_path("devtools.gypi") ],
11 # Some of the files in the .gypi use GYP variable expansions, go through and
13 devtools_core_base_js_files = gypi_values.devtools_core_base_js_files - [
14 "<@(devtools_main_js_files)",
15 "<@(devtools_standalone_files)",
16 ] + gypi_values.devtools_main_js_files + gypi_values.devtools_standalone_files
18 devtools_core_js_files =
19 devtools_core_base_js_files +
20 gypi_values.devtools_common_js_files +
21 gypi_values.devtools_sdk_js_files +
22 gypi_values.devtools_ui_js_files +
23 gypi_values.devtools_components_js_files
25 devtools_extensions_js_files = gypi_values.devtools_extensions_js_files -
26 [ "<@(devtools_extension_api_files)" ] +
27 gypi_values.devtools_extension_api_files
29 devtools_modules_js_files =
30 gypi_values.devtools_console_js_files +
31 gypi_values.devtools_search_js_files +
32 gypi_values.devtools_devices_js_files +
33 gypi_values.devtools_elements_js_files +
34 devtools_extensions_js_files +
35 gypi_values.devtools_resources_js_files +
36 gypi_values.devtools_network_js_files +
37 gypi_values.devtools_source_frame_js_files +
38 gypi_values.devtools_sources_js_files +
39 gypi_values.devtools_timeline_js_files +
40 gypi_values.devtools_profiler_js_files +
41 gypi_values.devtools_audits_js_files +
42 gypi_values.devtools_layers_js_files +
43 gypi_values.devtools_heap_snapshot_worker_js_files +
44 gypi_values.devtools_temp_storage_shared_worker_js_files +
45 gypi_values.devtools_script_formatter_worker_js_files +
46 gypi_values.devtools_uglify_files
49 devtools_core_js_files +
50 devtools_modules_js_files +
51 gypi_values.devtools_cm_css_files +
52 gypi_values.devtools_cm_js_files +
53 gypi_values.devtools_module_json_files
55 #-------------------------------------------------------------------------------
57 visibility = "//third_party/WebKit/*"
59 # Probably need to parameterize this. If we set it to true, there will be some
60 # further work in the scripts below.
61 debug_devtools = false
63 group("devtools_frontend_resources") {
65 ":build_audits_module",
66 ":build_console_module",
68 ":build_devices_module",
69 ":build_elements_module",
70 ":build_extensions_module",
71 ":build_heap_snapshot_worker_module",
72 ":build_layers_module",
73 ":build_network_module",
74 ":build_profiler_module",
75 ":build_resources_module",
76 ":build_script_formatter_worker_module",
77 ":build_search_module",
78 ":build_settings_module",
79 ":build_source_frame_module",
80 ":build_sources_module",
81 ":build_temp_storage_shared_worker_module",
82 ":build_timeline_module",
83 ":copy_inspector_images",
85 ":frontend_protocol_sources",
86 ":supported_css_properties",
90 deps += [ ":concatenated_devtools_css" ]
94 copy("copy_inspector_images") {
95 sources = gypi_values.devtools_image_files
96 outputs = [ "$root_out_dir/resources/inspector/Images/{{source_file_part}}" ]
99 # TODO(GYP) need debug_devtools support (this runs somewhat differently).
100 action("generate_devtools_grd") {
101 script = "scripts/generate_devtools_grd.py"
104 "$root_out_dir/resources/inspector/devtools.html",
105 "$root_out_dir/resources/inspector/main/Main.js",
106 "$root_out_dir/resources/inspector/search/AdvancedSearchView.js",
107 "$root_out_dir/resources/inspector/console/ConsolePanel.js",
108 "$root_out_dir/resources/inspector/elements/ElementsPanel.js",
109 "$root_out_dir/resources/inspector/extensions/ExtensionServer.js",
110 "$root_out_dir/resources/inspector/resources/ResourcesPanel.js",
111 "$root_out_dir/resources/inspector/network/NetworkPanel.js",
112 "$root_out_dir/resources/inspector/source_frame/SourceFrame.js",
113 "$root_out_dir/resources/inspector/sources/SourcesPanel.js",
114 "$root_out_dir/resources/inspector/timeline/TimelinePanel.js",
115 "$root_out_dir/resources/inspector/profiler/ProfilesPanel.js",
116 "$root_out_dir/resources/inspector/audits/AuditsPanel.js",
117 "$root_out_dir/resources/inspector/layers/LayersPanel.js",
118 "$root_out_dir/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js",
119 "$root_out_dir/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js",
120 "$root_out_dir/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js",
121 "$root_out_dir/resources/inspector/devices/DevicesView.js",
122 "$root_out_dir/resources/inspector/inspector.css",
123 "$root_out_dir/resources/inspector/devtools_extension_api.js",
124 ] + gypi_values.devtools_standalone_files + gypi_values.devtools_cm_css_files
126 images = gypi_values.devtools_image_files
127 images_path = "front_end/Images"
129 source_prereqs = input_pages + images
131 outfile = "$root_gen_dir/devtools/devtools_resources.grd"
132 outputs = [ outfile ]
134 relative_path_dirs = [
135 "$root_out_dir/resources/inspector",
139 args = rebase_path(input_pages, root_build_dir) + [
140 "--relative_path_dirs" ] +
141 rebase_path(relative_path_dirs, root_build_dir) + [
142 "--images", rebase_path(images_path, root_build_dir),
143 "--output", rebase_path(outfile, root_build_dir),
148 ":devtools_extension_api",
149 ":devtools_frontend_resources",
153 action("devtools_html") {
154 script = "scripts/generate_devtools_html.py"
156 source_prereqs = [ "front_end/inspector.html"]
157 outputs = [ "$root_out_dir/resources/inspector/devtools.html"]
159 args = rebase_path(source_prereqs, root_build_dir) +
160 rebase_path(outputs, root_build_dir)
162 if (debug_devtools) {
169 action("devtools_extension_api") {
170 script = "scripts/generate_devtools_extension_api.py"
172 source_prereqs = gypi_values.devtools_extension_api_files
173 outputs = [ "$root_out_dir/resources/inspector/devtools_extension_api.js" ]
175 args = rebase_path(outputs, root_build_dir) +
176 rebase_path(gypi_values.devtools_extension_api_files, root_build_dir)
179 action("supported_css_properties") {
180 script = "scripts/generate_supported_css.py"
183 "../core/css/CSSPropertyNames.in",
184 "../core/css/SVGCSSPropertyNames.in",
185 "../core/css/CSSShorthands.in",
189 "$root_gen_dir/blink/SupportedCSSProperties.js"
192 args = rebase_path(source_prereqs, root_build_dir) +
193 rebase_path(outputs, root_build_dir)
196 action("frontend_protocol_sources") {
197 script = "scripts/CodeGeneratorFrontend.py"
199 source_prereqs = [ "protocol.json" ]
200 outputs = [ "$root_gen_dir/blink/InspectorBackendCommands.js" ]
202 args = rebase_path(source_prereqs, root_build_dir) + [
203 "--output_js_dir", rebase_path("$root_gen_dir/blink", root_build_dir),
207 # Runs the inline_js_imports script.
208 # input: (String) The input .js file to read.
209 # imported_files: (List of strings) The list of files the input depends on.
210 # output: (String) The .js file to write.
211 template("inline_js_imports") {
212 assert(defined(invoker.input), target_name)
213 assert(defined(invoker.imported_files), target_name)
214 assert(defined(invoker.output), target_name)
216 action(target_name) {
217 script = "scripts/inline_js_imports.py"
219 source_prereqs = [ invoker.input ] + invoker.imported_files
220 outputs = [ invoker.output ]
223 rebase_path(invoker.input, root_build_dir),
224 rebase_path(invoker.output, root_build_dir),
229 inline_js_imports("build_audits_module") {
230 input = "front_end/audits/AuditsPanel.js"
231 imported_files = gypi_values.devtools_audits_js_files
232 output = "$root_out_dir/resources/inspector/audits/AuditsPanel.js"
235 action("build_core_module") {
236 script = "scripts/concatenate_js_files.py"
237 input_page = "front_end/inspector.html"
240 "$root_gen_dir/blink/InspectorBackendCommands.js",
241 "$root_gen_dir/blink/SupportedCSSProperties.js",
242 "$root_gen_dir/blink/common/modules.js",
243 ] + devtools_core_js_files
246 "$root_gen_dir/blink",
250 "$root_out_dir/resources/inspector/main/Main.js",
254 rebase_path(input_page, root_build_dir),
256 args += rebase_path(search_path, root_build_dir)
257 args += rebase_path(outputs, root_build_dir)
261 ":supported_css_properties",
262 ":frontend_protocol_sources",
263 ":concatenated_module_descriptors",
267 inline_js_imports("build_console_module") {
268 input = "front_end/console/ConsolePanel.js"
269 imported_files = gypi_values.devtools_console_js_files
270 output = "$root_out_dir/resources/inspector/console/ConsolePanel.js"
273 inline_js_imports("build_devices_module") {
274 input = "front_end/devices/DevicesView.js"
275 imported_files = gypi_values.devtools_devices_js_files
276 output = "$root_out_dir/resources/inspector/devices/DevicesView.js"
279 inline_js_imports("build_elements_module") {
280 input = "front_end/elements/ElementsPanel.js"
281 imported_files = gypi_values.devtools_elements_js_files
282 output = "$root_out_dir/resources/inspector/elements/ElementsPanel.js"
285 inline_js_imports("build_extensions_module") {
286 input = "front_end/extensions/ExtensionServer.js"
287 imported_files = devtools_extensions_js_files
288 output = "$root_out_dir/resources/inspector/extensions/ExtensionServer.js"
291 inline_js_imports("build_layers_module") {
292 input = "front_end/layers/LayersPanel.js"
293 imported_files = gypi_values.devtools_layers_js_files
294 output = "$root_out_dir/resources/inspector/layers/LayersPanel.js"
297 inline_js_imports("build_network_module") {
298 input = "front_end/network/NetworkPanel.js"
299 imported_files = gypi_values.devtools_network_js_files
300 output = "$root_out_dir/resources/inspector/network/NetworkPanel.js"
303 inline_js_imports("build_profiler_module") {
304 input = "front_end/profiler/ProfilesPanel.js"
305 imported_files = gypi_values.devtools_profiler_js_files
306 output = "$root_out_dir/resources/inspector/profiler/ProfilesPanel.js"
309 inline_js_imports("build_resources_module") {
310 input = "front_end/resources/ResourcesPanel.js"
311 imported_files = gypi_values.devtools_resources_js_files
312 output = "$root_out_dir/resources/inspector/resources/ResourcesPanel.js"
315 inline_js_imports("build_search_module") {
316 input = "front_end/search/AdvancedSearchView.js"
317 imported_files = gypi_values.devtools_search_js_files
318 output = "$root_out_dir/resources/inspector/search/AdvancedSearchView.js"
321 inline_js_imports("build_settings_module") {
322 input = "front_end/settings/SettingsScreen.js"
323 imported_files = gypi_values.devtools_settings_js_files
324 output = "$root_out_dir/resources/inspector/settings/SettingsScreen.js"
327 inline_js_imports("build_source_frame_module") {
328 input = "front_end/source_frame/SourceFrame.js"
329 imported_files = gypi_values.devtools_source_frame_js_files +
330 gypi_values.devtools_cm_js_files
331 output = "$root_out_dir/resources/inspector/source_frame/SourceFrame.js"
334 inline_js_imports("build_sources_module") {
335 input = "front_end/sources/SourcesPanel.js"
336 imported_files = gypi_values.devtools_sources_js_files
337 output = "$root_out_dir/resources/inspector/sources/SourcesPanel.js"
340 inline_js_imports("build_timeline_module") {
341 input = "front_end/timeline/TimelinePanel.js"
342 imported_files = gypi_values.devtools_timeline_js_files
343 output = "$root_out_dir/resources/inspector/timeline/TimelinePanel.js"
346 inline_js_imports("build_heap_snapshot_worker_module") {
347 input = "front_end/profiler/heap_snapshot_worker/HeapSnapshotWorker.js"
348 imported_files = gypi_values.devtools_heap_snapshot_worker_js_files
349 output = "$root_out_dir/resources/inspector/profiler/heap_snapshot_worker/HeapSnapshotWorker.js"
352 inline_js_imports("build_script_formatter_worker_module") {
353 input = "front_end/script_formatter_worker/ScriptFormatterWorker.js"
354 imported_files = gypi_values.devtools_uglify_files
355 output = "$root_out_dir/resources/inspector/script_formatter_worker/ScriptFormatterWorker.js"
358 inline_js_imports("build_temp_storage_shared_worker_module") {
359 input = "front_end/temp_storage_shared_worker/TempStorageSharedWorker.js"
360 imported_files = gypi_values.devtools_temp_storage_shared_worker_js_files
361 output = "$root_out_dir/resources/inspector/temp_storage_shared_worker/TempStorageSharedWorker.js"
364 action("concatenated_module_descriptors") {
365 script = "scripts/concatenate_module_descriptors.py"
367 input = "front_end/common/modules.js"
368 source_prereqs = [ input ] + gypi_values.devtools_module_json_files
369 outputs = [ "$root_gen_dir/blink/common/modules.js" ]
371 args = rebase_path([ input ] + outputs + gypi_values.devtools_module_json_files, root_build_dir)
374 action("concatenated_devtools_css") {
375 script = "scripts/concatenate_css_files.py"
377 input_page = "front_end/inspector.html"
378 source_prereqs = [ input_page ] + all_devtools_files
379 search_path = [ "front_end" ]
381 outputs = [ "$root_out_dir/resources/inspector/inspector.css" ]
383 args = [ rebase_path(input_page, root_build_dir) ] +
384 rebase_path(search_path, root_build_dir) +
385 rebase_path(outputs, root_build_dir)