OLD | NEW |
1 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 # for details. All rights reserved. Use of this source code is governed by a | 2 # for details. All rights reserved. Use of this source code is governed by a |
3 # BSD-style license that can be found in the LICENSE file. | 3 # BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 config("libdart_vm_config") { | 5 config("libdart_vm_config") { |
6 if (defined(is_fuchsia) && is_fuchsia) { | 6 if (defined(is_fuchsia) && is_fuchsia) { |
7 libs = [ "magenta" ] | 7 libs = [ "magenta" ] |
8 } else if (is_win) { | 8 } else if (is_win) { |
9 libs = [ | 9 libs = [ |
10 "advapi32.lib", | 10 "advapi32.lib", |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 script = "../tools/concatenate_patches.py" | 408 script = "../tools/concatenate_patches.py" |
409 args = [ | 409 args = [ |
410 "--output", | 410 "--output", |
411 rebase_path(output, root_build_dir), | 411 rebase_path(output, root_build_dir), |
412 ] | 412 ] |
413 inputs = [] | 413 inputs = [] |
414 } | 414 } |
415 } | 415 } |
416 | 416 |
417 if (!defined(is_fuchsia) || !is_fuchsia) { | 417 if (!defined(is_fuchsia) || !is_fuchsia) { |
| 418 template("generate_patched_sdk") { |
| 419 assert(defined(invoker.libraries), "Need libraries in $target_name") |
418 | 420 |
419 template("generate_patched_sdk") { | 421 concatenation_target_names = [] |
420 assert(defined(invoker.libraries), "Need libraries in $target_name") | 422 concatenation_files = [] |
421 | 423 |
422 concatenation_target_names = [] | 424 # Concatenate vm library patches. |
423 concatenation_files = [] | 425 foreach(library, invoker.libraries) { |
| 426 name = library[1] |
424 | 427 |
425 # Concatenate vm library patches. | 428 target_output = "$target_gen_dir/patches/${name}_patch.dart" |
426 foreach(library, invoker.libraries) { | 429 concatenate_patch("concatenate_${name}_patch") { |
427 name = library[1] | 430 libname = name |
| 431 dir = library[0] |
| 432 output = target_output |
| 433 } |
| 434 concatenation_target_names += [ ":concatenate_${name}_patch" ] |
| 435 concatenation_files += [ target_output ] |
| 436 } |
428 | 437 |
429 target_output = "$target_gen_dir/patches/${name}_patch.dart" | 438 # Build the patched sdk out of the concatenated patches and the special |
430 concatenate_patch("concatenate_${name}_patch") { | 439 # libraries. |
431 libname = name | 440 action(target_name) { |
432 dir = library[0] | 441 deps = concatenation_target_names |
433 output = target_output | 442 |
| 443 patches_dir = "$target_gen_dir/patches" |
| 444 patched_sdk_dir = "$root_out_dir/patched_sdk" |
| 445 |
| 446 script = "../../tools/patch_sdk.py" |
| 447 |
| 448 # We list all files which make up the sdk (modulo patches) and get them ba
ck |
| 449 # as a GN list object. |
| 450 shared_sdk_sources = exec_script("../../tools/list_dart_files.py", |
| 451 [ "../../sdk/lib" ], |
| 452 "list lines") |
| 453 |
| 454 # We list the `patch_sdk.dart` tool here because the [script] (which is |
| 455 # implicitly an input) will call it. |
| 456 inputs = [ |
| 457 "../../tools/patch_sdk.dart", |
| 458 ] |
| 459 |
| 460 # Files below are not patches, they will not be in [concatenation_files] b
ut |
| 461 # the `patch_sdk.dart` script will copy them into the patched sdk. |
| 462 inputs += [ |
| 463 "../lib/typed_data.dart", |
| 464 "../bin/builtin.dart", |
| 465 "../bin/vmservice/vmservice_io.dart", |
| 466 "../bin/vmservice/loader.dart", |
| 467 "../bin/vmservice/server.dart", |
| 468 ] |
| 469 |
| 470 # Add all the normal sdk sources. |
| 471 inputs += shared_sdk_sources |
| 472 |
| 473 # Add all the concatenated patch files. |
| 474 inputs += concatenation_files |
| 475 |
| 476 outputs = [ |
| 477 # Instead of listing all outputs we list a single well-known one. |
| 478 "${patched_sdk_dir}/lib/core/core.dart", |
| 479 ] |
| 480 |
| 481 args = [ |
| 482 "vm", |
| 483 rebase_path("../../sdk"), |
| 484 rebase_path(patches_dir, root_build_dir), |
| 485 rebase_path(patched_sdk_dir, root_build_dir), |
| 486 ] |
434 } | 487 } |
435 concatenation_target_names += [ ":concatenate_${name}_patch" ] | |
436 concatenation_files += [ target_output ] | |
437 } | 488 } |
438 | 489 |
439 # Build the patched sdk out of the concatenated patches and the special | 490 generate_patched_sdk("patched_sdk") { |
440 # libraries. | 491 libraries = [ |
441 action(target_name) { | 492 [ |
442 deps = concatenation_target_names | 493 "lib", |
443 | 494 "async", |
444 patches_dir = "$target_gen_dir/patches" | 495 ], |
445 patched_sdk_dir = "$target_gen_dir/patched_sdk" | 496 [ |
446 | 497 "lib", |
447 script = "../../tools/patch_sdk.py" | 498 "collection", |
448 | 499 ], |
449 # We list all files which make up the sdk (modulo patches) and get them back | 500 [ |
450 # as a GN list object. | 501 "lib", |
451 shared_sdk_sources = exec_script("../../tools/list_dart_files.py", | 502 "convert", |
452 [ "../../sdk/lib" ], | 503 ], |
453 "list lines") | 504 [ |
454 | 505 "lib", |
455 # We list the `patch_sdk.dart` tool here because the [script] (which is | 506 "core", |
456 # implicitly an input) will call it. | 507 ], |
457 inputs = [ | 508 [ |
458 "../../tools/patch_sdk.dart", | 509 "lib", |
459 ] | 510 "developer", |
460 | 511 ], |
461 # Files below are not patches, they will not be in [concatenation_files] but | 512 [ |
462 # the `patch_sdk.dart` script will copy them into the patched sdk. | 513 "lib", |
463 inputs += [ | 514 "internal", |
464 "../lib/typed_data.dart", | 515 ], |
465 "../bin/builtin.dart", | 516 [ |
466 "../bin/vmservice/vmservice_io.dart", | 517 "lib", |
467 "../bin/vmservice/loader.dart", | 518 "isolate", |
468 "../bin/vmservice/server.dart", | 519 ], |
469 ] | 520 [ |
470 | 521 "lib", |
471 # Add all the normal sdk sources. | 522 "math", |
472 inputs += shared_sdk_sources | 523 ], |
473 | 524 [ |
474 # Add all the concatenated patch files. | 525 "lib", |
475 inputs += concatenation_files | 526 "mirrors", |
476 | 527 ], |
477 outputs = [ | 528 [ |
478 # Instead of listing all outputs we list a single well-known one. | 529 "lib", |
479 "${patched_sdk_dir}/lib/core/core.dart", | 530 "profiler", |
480 ] | 531 ], |
481 | 532 [ |
482 args = [ | 533 "lib", |
483 "vm", | 534 "vmservice", |
484 rebase_path("../../sdk"), | 535 ], |
485 rebase_path(patches_dir, root_build_dir), | 536 [ |
486 rebase_path(patched_sdk_dir, root_build_dir), | 537 "bin", |
| 538 "io", |
| 539 ], |
487 ] | 540 ] |
488 } | 541 } |
489 } | 542 } |
490 | |
491 generate_patched_sdk("patched_sdk") { | |
492 libraries = [ | |
493 [ | |
494 "lib", | |
495 "async", | |
496 ], | |
497 [ | |
498 "lib", | |
499 "collection", | |
500 ], | |
501 [ | |
502 "lib", | |
503 "convert", | |
504 ], | |
505 [ | |
506 "lib", | |
507 "core", | |
508 ], | |
509 [ | |
510 "lib", | |
511 "developer", | |
512 ], | |
513 [ | |
514 "lib", | |
515 "internal", | |
516 ], | |
517 [ | |
518 "lib", | |
519 "isolate", | |
520 ], | |
521 [ | |
522 "lib", | |
523 "math", | |
524 ], | |
525 [ | |
526 "lib", | |
527 "mirrors", | |
528 ], | |
529 [ | |
530 "lib", | |
531 "profiler", | |
532 ], | |
533 [ | |
534 "lib", | |
535 "vmservice", | |
536 ], | |
537 [ | |
538 "bin", | |
539 "io", | |
540 ], | |
541 ] | |
542 } | |
543 | |
544 } | |
OLD | NEW |