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

Side by Side Diff: Source/devtools/BUILD.gn

Issue 646413002: DevTools: Refactor build script to copy module files in debug_devtools mode (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/features.gni") 5 import("//build/config/features.gni")
6 6
7 gypi_values = exec_script( 7 gypi_values = exec_script(
8 "//build/gypi_to_gn.py", 8 "//build/gypi_to_gn.py",
9 [ rebase_path("devtools.gypi") ], 9 [ rebase_path("devtools.gypi") ],
10 "scope", 10 "scope",
11 [ "devtools.gypi" ]) 11 [ "devtools.gypi" ])
12 12
13 # Some of the files in the .gypi use GYP variable expansions, go through and 13 # Some of the files in the .gypi use GYP variable expansions, go through and
14 # fix them. 14 # fix them.
15 devtools_core_base_non_generated_files =
16 gypi_values.devtools_core_base_non_generated_files - [
17 "<@(devtools_standalone_files)",
18 ] + gypi_values.devtools_standalone_files
19
15 devtools_core_base_files = gypi_values.devtools_core_base_files - [ 20 devtools_core_base_files = gypi_values.devtools_core_base_files - [
16 "<@(devtools_standalone_files)", 21 "<@(devtools_core_base_non_generated_files)",
17 ] + gypi_values.devtools_standalone_files 22 ] + devtools_core_base_non_generated_files
18 23
19 devtools_core_files = 24 devtools_core_files =
20 devtools_core_base_files + 25 devtools_core_base_files +
21 gypi_values.devtools_bindings_js_files + 26 gypi_values.devtools_bindings_js_files +
22 gypi_values.devtools_common_js_files + 27 gypi_values.devtools_common_js_files +
23 gypi_values.devtools_components_js_files + 28 gypi_values.devtools_components_js_files +
24 gypi_values.devtools_host_js_files + 29 gypi_values.devtools_host_js_files +
25 gypi_values.devtools_main_js_files + 30 gypi_values.devtools_main_js_files +
26 gypi_values.devtools_screencast_js_files + 31 gypi_values.devtools_screencast_js_files +
27 gypi_values.devtools_sdk_js_files + 32 gypi_values.devtools_sdk_js_files +
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 resources_out_dir + "InspectorBackendCommands.js", 75 resources_out_dir + "InspectorBackendCommands.js",
71 resources_out_dir + "SupportedCSSProperties.js", 76 resources_out_dir + "SupportedCSSProperties.js",
72 ] 77 ]
73 78
74 #------------------------------------------------------------------------------- 79 #-------------------------------------------------------------------------------
75 80
76 visibility = [ "//third_party/WebKit/*" ] 81 visibility = [ "//third_party/WebKit/*" ]
77 82
78 group("devtools_frontend_resources") { 83 group("devtools_frontend_resources") {
79 deps = [ 84 deps = [
80 ":devtools_html",
81 ":toolbox_html",
82 ":copy_inspector_images", 85 ":copy_inspector_images",
83 ":copy_standalone_css", 86 ":copy_standalone_css",
84 ":devtools_extension_api", 87 ":devtools_extension_api",
85 ":frontend_protocol_sources", 88 ":frontend_protocol_sources",
86 ":supported_css_properties", 89 ":supported_css_properties",
87 ":build_applications", 90 ":build_applications",
88 ] 91 ]
89 92
90 if (!debug_devtools) { 93 if (!debug_devtools) {
91 # This overwrites application-specific core CSS (devtools.css), 94 # This overwrites application-specific core CSS (devtools.css),
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 ] 163 ]
161 164
162 args = rebase_path(input_pages, root_build_dir) + [ 165 args = rebase_path(input_pages, root_build_dir) + [
163 "--relative_path_dirs" ] + 166 "--relative_path_dirs" ] +
164 rebase_path(relative_path_dirs, root_build_dir) + [ 167 rebase_path(relative_path_dirs, root_build_dir) + [
165 "--images", rebase_path(images_path, root_build_dir), 168 "--images", rebase_path(images_path, root_build_dir),
166 "--output", rebase_path(outfile, root_build_dir), 169 "--output", rebase_path(outfile, root_build_dir),
167 ] 170 ]
168 } 171 }
169 172
170 template("generate_app_html") {
171 assert(defined(invoker.app_name), target_name)
172 app_name = invoker.app_name
173
174 action(target_name) {
175 script = "scripts/generate_devtools_html.py"
176
177 inputs = [ "front_end/" + app_name + ".html"]
178 outputs = [ resources_out_dir + app_name + ".html" ]
179
180 args = rebase_path(inputs, root_build_dir) +
181 rebase_path(outputs, root_build_dir)
182
183 if (debug_devtools) {
184 args += [ "1" ]
185 } else {
186 args += [ "0" ]
187 }
188 }
189 }
190
191 generate_app_html("devtools_html") {
192 app_name = "devtools"
193 }
194
195 generate_app_html("toolbox_html") {
196 app_name = "toolbox"
197 }
198
199 action("devtools_extension_api") { 173 action("devtools_extension_api") {
200 script = "scripts/generate_devtools_extension_api.py" 174 script = "scripts/generate_devtools_extension_api.py"
201 175
202 inputs = gypi_values.devtools_extension_api_files 176 inputs = gypi_values.devtools_extension_api_files
203 outputs = [ resources_out_dir + "devtools_extension_api.js" ] 177 outputs = [ resources_out_dir + "devtools_extension_api.js" ]
204 178
205 args = rebase_path(outputs, root_build_dir) + 179 args = rebase_path(outputs, root_build_dir) +
206 rebase_path(gypi_values.devtools_extension_api_files, root_build_dir) 180 rebase_path(gypi_values.devtools_extension_api_files, root_build_dir)
207 } 181 }
208 182
(...skipping 13 matching lines...) Expand all
222 196
223 inputs = [ "protocol.json" ] 197 inputs = [ "protocol.json" ]
224 outputs = [ resources_out_dir + "InspectorBackendCommands.js" ] 198 outputs = [ resources_out_dir + "InspectorBackendCommands.js" ]
225 199
226 args = rebase_path(inputs, root_build_dir) + [ 200 args = rebase_path(inputs, root_build_dir) + [
227 "--output_js_dir", 201 "--output_js_dir",
228 rebase_path(resources_out_dir, root_build_dir), 202 rebase_path(resources_out_dir, root_build_dir),
229 ] 203 ]
230 } 204 }
231 205
232 group("build_applications") { 206 action("build_applications") {
233 if (!debug_devtools) { 207 script = "scripts/build_applications.py"
234 # Release: concatenate application code. This overwrites 208 helper_scripts = [
235 # application-specific scripts (devtools.js), and thus should be guarded. 209 "scripts/modular_build.py",
236 action("build_applications_release") { 210 "scripts/concatenate_application_code.py",
237 script = "scripts/build_applications.py" 211 ]
238 helper_scripts = [
239 "scripts/modular_build.py",
240 "scripts/concatenate_application_code.py",
241 ]
242 212
243 inputs = helper_scripts + all_devtools_files + generated_scripts 213 inputs = helper_scripts + all_devtools_files + generated_scripts
244 214
245 outputs = [ 215 outputs = [
246 resources_out_dir + "devtools.js", 216 resources_out_dir + "devtools.js",
247 resources_out_dir + "toolbox.js", 217 resources_out_dir + "devtools.html",
248 resources_out_dir + "audits_module.js", 218 resources_out_dir + "toolbox.js",
249 resources_out_dir + "console_module.js", 219 resources_out_dir + "toolbox.html",
250 resources_out_dir + "devices_module.js", 220 ]
251 resources_out_dir + "documentation_module.js",
252 resources_out_dir + "elements_module.js",
253 resources_out_dir + "extensions_module.js",
254 resources_out_dir + "heap_snapshot_worker_module.js",
255 resources_out_dir + "layers_module.js",
256 resources_out_dir + "network_module.js",
257 resources_out_dir + "profiler_module.js",
258 resources_out_dir + "promises_module.js",
259 resources_out_dir + "resources_module.js",
260 resources_out_dir + "script_formatter_worker_module.js",
261 resources_out_dir + "settings_module.js",
262 resources_out_dir + "source_frame_module.js",
263 resources_out_dir + "sources_module.js",
264 resources_out_dir + "temp_storage_shared_worker_module.js",
265 resources_out_dir + "timeline_module.js",
266 ]
267 221
268 args = [ 222 if (debug_devtools) {
269 "devtools", "toolbox", 223 deps = [ ":copy_debug_non_modules" ]
270 "--input_path", rebase_path("front_end", root_build_dir),
271 "--output_path", rebase_path(resources_out_dir, root_build_dir),
272 "--debug", "0"
273 ]
274 224
275 deps = [ 225 debug_mode = "1"
276 ":supported_css_properties", 226 } else {
277 ":frontend_protocol_sources", 227 outputs += [
278 ] 228 resources_out_dir + "audits_module.js",
279 } 229 resources_out_dir + "console_module.js",
230 resources_out_dir + "devices_module.js",
231 resources_out_dir + "documentation_module.js",
232 resources_out_dir + "elements_module.js",
233 resources_out_dir + "extensions_module.js",
234 resources_out_dir + "heap_snapshot_worker_module.js",
235 resources_out_dir + "layers_module.js",
236 resources_out_dir + "network_module.js",
237 resources_out_dir + "profiler_module.js",
238 resources_out_dir + "promises_module.js",
239 resources_out_dir + "resources_module.js",
240 resources_out_dir + "script_formatter_worker_module.js",
241 resources_out_dir + "settings_module.js",
242 resources_out_dir + "source_frame_module.js",
243 resources_out_dir + "sources_module.js",
244 resources_out_dir + "temp_storage_shared_worker_module.js",
245 resources_out_dir + "timeline_module.js",
246 ]
247
280 deps = [ 248 deps = [
281 ":build_applications_release" 249 ":supported_css_properties",
250 ":frontend_protocol_sources",
282 ] 251 ]
283 } else { 252
284 deps = [ 253 debug_mode = "0"
285 ":copy_debug_modules"
286 ]
287 } 254 }
255
256 args = [
257 "devtools", "toolbox",
258 "--input_path", rebase_path("front_end", root_build_dir),
259 "--output_path", rebase_path(resources_out_dir, root_build_dir),
260 "--debug", debug_mode
261 ]
288 } 262 }
289 263
290 copy("copy_codemirror_css") { 264 copy("copy_codemirror_css") {
291 sources = gypi_values.devtools_cm_css_files 265 sources = gypi_values.devtools_cm_css_files
292 outputs = [ resources_out_dir + "cm/{{source_file_part}}" ] 266 outputs = [ resources_out_dir + "cm/{{source_file_part}}" ]
293 } 267 }
294 268
295 copy("copy_standalone_css") { 269 copy("copy_standalone_css") {
296 sources = gypi_values.devtools_standalone_files 270 sources = gypi_values.devtools_standalone_files
297 outputs = [ resources_out_dir + "{{source_file_part}}" ] 271 outputs = [ resources_out_dir + "{{source_file_part}}" ]
298 272
299 deps = [ ":copy_codemirror_css" ] 273 deps = [ ":copy_codemirror_css" ]
300 } 274 }
301 275
302 if (debug_devtools) { 276 if (debug_devtools) {
303 # Debug: copy front-end into resources_out_dir as-is. 277 # Debug: copy non-module directories and core into resources_out_dir as-is.
304 group("copy_debug_modules") { 278 group("copy_debug_non_modules") {
305 deps = [ 279 deps = [
306 ":copy_audits_module", 280 ":copy_runtime_core",
307 ":copy_bindings_module", 281 ":copy_uglify_js_files",
308 ":copy_common_module",
309 ":copy_components_module",
310 ":copy_console_module",
311 ":copy_devices_module",
312 ":copy_documentation_module",
313 ":copy_elements_module",
314 ":copy_extensions_module",
315 ":copy_heap_snapshot_worker_module",
316 ":copy_host_module",
317 ":copy_layers_module",
318 ":copy_main_module",
319 ":copy_network_module",
320 ":copy_profiler_module",
321 ":copy_promises_module",
322 ":copy_resources_module",
323 ":copy_screencast_module",
324 ":copy_script_formatter_worker_module",
325 ":copy_sdk_module",
326 ":copy_settings_module",
327 ":copy_source_frame_module",
328 ":copy_sources_module",
329 ":copy_temp_storage_shared_worker_module",
330 ":copy_timeline_module",
331 ":copy_toolbox_module",
332 ":copy_toolbox_bootstrap_module",
333 ":copy_ui_module",
334 ":copy_workspace_module",
335 ]
336
337 copy("copy_runtime_core") {
338 sources = devtools_core_base_files -
339 gypi_values.devtools_standalone_files
340 outputs = [ resources_out_dir + "/{{source_file_part}}" ]
341 }
342 deps += [ ":copy_runtime_core" ]
343 }
344
345 # Copies module contents into resources_out_dir in debug_devtools=1 builds.
346 # module_name: (String) The JS module name to process.
347 # imported_files: (List of strings) The list of files the input depends on.
348 template("copy_debug_module") {
349 assert(defined(invoker.module_name), target_name)
350 assert(defined(invoker.imported_files), target_name)
351
352 imported_files = invoker.imported_files
353 module_name = invoker.module_name
354 module_json = "front_end/" + module_name + "/module.json"
355
356 copy(target_name) {
357 sources = [ module_json ] + imported_files
358 outputs = [ resources_out_dir + module_name + "/{{source_file_part}}" ]
359 }
360 }
361
362 copy_debug_module("copy_audits_module") {
363 module_name = "audits"
364 imported_files = gypi_values.devtools_audits_js_files
365 }
366
367 copy_debug_module("copy_bindings_module") {
368 module_name = "bindings"
369 imported_files = gypi_values.devtools_bindings_js_files
370 }
371
372 copy_debug_module("copy_common_module") {
373 module_name = "common"
374 imported_files = gypi_values.devtools_common_js_files
375 }
376
377 copy_debug_module("copy_components_module") {
378 module_name = "components"
379 imported_files = gypi_values.devtools_components_js_files
380 }
381
382 copy_debug_module("copy_console_module") {
383 module_name = "console"
384 imported_files = gypi_values.devtools_console_js_files
385 }
386
387 copy_debug_module("copy_devices_module") {
388 module_name = "devices"
389 imported_files = gypi_values.devtools_devices_js_files
390 }
391
392 copy_debug_module("copy_documentation_module") {
393 module_name = "documentation"
394 imported_files = gypi_values.devtools_documentation_js_files
395 }
396
397 copy_debug_module("copy_elements_module") {
398 module_name = "elements"
399 imported_files = gypi_values.devtools_elements_js_files
400 }
401
402 copy_debug_module("copy_extensions_module") {
403 module_name = "extensions"
404 imported_files = devtools_extensions_js_files
405 }
406
407 copy_debug_module("copy_heap_snapshot_worker_module") {
408 module_name = "heap_snapshot_worker"
409 imported_files = gypi_values.devtools_heap_snapshot_worker_js_files
410 }
411
412 copy_debug_module("copy_host_module") {
413 module_name = "host"
414 imported_files = gypi_values.devtools_host_js_files
415 }
416
417 copy_debug_module("copy_layers_module") {
418 module_name = "layers"
419 imported_files = gypi_values.devtools_layers_js_files
420 }
421
422 copy_debug_module("copy_main_module") {
423 module_name = "main"
424 imported_files = gypi_values.devtools_main_js_files
425 }
426
427 copy_debug_module("copy_network_module") {
428 module_name = "network"
429 imported_files = gypi_values.devtools_network_js_files
430 }
431
432 copy_debug_module("copy_profiler_module") {
433 module_name = "profiler"
434 imported_files = gypi_values.devtools_profiler_js_files
435 }
436
437 copy_debug_module("copy_promises_module") {
438 module_name = "promises"
439 imported_files = gypi_values.devtools_promises_js_files
440 }
441
442 copy_debug_module("copy_resources_module") {
443 module_name = "resources"
444 imported_files = gypi_values.devtools_resources_js_files
445 }
446
447 copy_debug_module("copy_screencast_module") {
448 module_name = "screencast"
449 imported_files = gypi_values.devtools_screencast_js_files
450 }
451
452 group("copy_script_formatter_worker_module") {
453 copy_debug_module("copy_script_formatter_worker_module_base") {
454 module_name = "script_formatter_worker"
455 imported_files = gypi_values.devtools_uglify_files +
456 gypi_values.devtools_script_formatter_worker_js_files
457 }
458
459 copy("copy_uglify_js_files") {
460 sources = gypi_values.devtools_uglify_files
461 outputs = [ resources_out_dir + "UglifyJS/{{source_file_part}}" ]
462 }
463
464 deps = [
465 ":copy_script_formatter_worker_module_base",
466 ":copy_uglify_js_files"
467 ]
468 }
469
470 copy_debug_module("copy_sdk_module") {
471 module_name = "sdk"
472 imported_files = gypi_values.devtools_sdk_js_files
473 }
474
475 copy_debug_module("copy_settings_module") {
476 module_name = "settings"
477 imported_files = gypi_values.devtools_settings_js_files
478 }
479
480 group("copy_source_frame_module") {
481 copy_debug_module("copy_source_frame_module_base") {
482 module_name = "source_frame"
483 imported_files = gypi_values.devtools_source_frame_js_files
484 }
485
486 copy("copy_codemirror_js_files") {
487 sources = gypi_values.devtools_cm_js_files
488 outputs = [ resources_out_dir + "cm/{{source_file_part}}" ]
489 }
490
491 deps = [
492 ":copy_source_frame_module_base",
493 ":copy_codemirror_js_files", 282 ":copy_codemirror_js_files",
494 ] 283 ]
495 } 284 }
496 285
497 copy_debug_module("copy_sources_module") { 286 copy("copy_runtime_core") {
498 module_name = "sources" 287 sources = devtools_core_base_non_generated_files -
499 imported_files = gypi_values.devtools_sources_js_files 288 gypi_values.devtools_standalone_files
289 outputs = [ resources_out_dir + "/{{source_file_part}}" ]
500 } 290 }
501 291
502 copy_debug_module("copy_temp_storage_shared_worker_module") { 292 copy("copy_uglify_js_files") {
503 module_name = "temp_storage_shared_worker" 293 sources = gypi_values.devtools_uglify_files
504 imported_files = gypi_values.devtools_temp_storage_shared_worker_js_files 294 outputs = [ resources_out_dir + "UglifyJS/{{source_file_part}}" ]
505 } 295 }
506 296
507 copy_debug_module("copy_timeline_module") { 297 copy("copy_codemirror_js_files") {
508 module_name = "timeline" 298 sources = gypi_values.devtools_cm_js_files
509 imported_files = gypi_values.devtools_timeline_js_files 299 outputs = [ resources_out_dir + "cm/{{source_file_part}}" ]
510 }
511
512 copy_debug_module("copy_toolbox_module") {
513 module_name = "toolbox"
514 imported_files = gypi_values.devtools_toolbox_js_files
515 }
516
517 copy_debug_module("copy_toolbox_bootstrap_module") {
518 module_name = "toolbox_bootstrap"
519 imported_files = gypi_values.devtools_toolbox_bootstrap_js_files
520 }
521
522 copy_debug_module("copy_ui_module") {
523 module_name = "ui"
524 imported_files = gypi_values.devtools_ui_js_files
525 }
526
527 copy_debug_module("copy_workspace_module") {
528 module_name = "workspace"
529 imported_files = gypi_values.devtools_workspace_js_files
530 } 300 }
531 } 301 }
532 302
533 if (!debug_devtools) { 303 if (!debug_devtools) {
534 # Release: Concatenate application CSS. 304 # Release: Concatenate application CSS.
535 template("concatenate_css") { 305 template("concatenate_css") {
536 assert(defined(invoker.app_name), target_name) 306 assert(defined(invoker.app_name), target_name)
537 app_name = invoker.app_name 307 app_name = invoker.app_name
538 308
539 action(target_name) { 309 action(target_name) {
540 script = "scripts/concatenate_css_files.py" 310 script = "scripts/concatenate_css_files.py"
541 311
542 input_stylesheet = "front_end/" + app_name + ".css" 312 input_stylesheet = "front_end/" + app_name + ".css"
543 inputs = [ input_stylesheet ] + devtools_core_base_files 313 inputs = [ input_stylesheet ] + devtools_core_base_non_generated_files
544 314
545 outputs = [ resources_out_dir + app_name + ".css" ] 315 outputs = [ resources_out_dir + app_name + ".css" ]
546 316
547 args = [ rebase_path(input_stylesheet, root_build_dir) ] + 317 args = [ rebase_path(input_stylesheet, root_build_dir) ] +
548 rebase_path(outputs, root_build_dir) 318 rebase_path(outputs, root_build_dir)
549 } 319 }
550 } 320 }
551 321
552 concatenate_css("concatenated_devtools_css") { 322 concatenate_css("concatenated_devtools_css") {
553 app_name = "devtools" 323 app_name = "devtools"
554 } 324 }
555 325
556 concatenate_css("concatenated_toolbox_css") { 326 concatenate_css("concatenated_toolbox_css") {
557 app_name = "toolbox" 327 app_name = "toolbox"
558 } 328 }
559 } 329 }
OLDNEW
« no previous file with comments | « no previous file | Source/devtools/devtools.gyp » ('j') | Source/devtools/scripts/concatenate_application_code.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698