Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2017, 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 # This GN file contains build rules for assembling the Dart SDK. There are | 5 # This GN file contains build rules for assembling the Dart SDK. There are |
| 6 # two possible variants: the "Full" SDK, and the "Platform" SDK. If you want | 6 # two possible variants: the "Full" SDK, and the "Platform" SDK. If you want |
| 7 # to make a new subset of the Full SDK, make it the same way we make | 7 # to make a new subset of the Full SDK, make it the same way we make |
| 8 # the Platform SDK. | 8 # the Platform SDK. |
| 9 # | 9 # |
| 10 # Warning: | 10 # Warning: |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 ] | 208 ] |
| 209 | 209 |
| 210 # Package sources copied to lib/ | 210 # Package sources copied to lib/ |
| 211 _analyzer_source_dirs = [ | 211 _analyzer_source_dirs = [ |
| 212 "analyzer", | 212 "analyzer", |
| 213 "analysis_server", | 213 "analysis_server", |
| 214 "front_end", | 214 "front_end", |
| 215 "kernel", | 215 "kernel", |
| 216 ] | 216 ] |
| 217 | 217 |
| 218 # copy_trees() arranges to invoke copy_tree.py only once to gather the list of | |
| 219 # input source files for every copy_tree() target. It takes a list of scopes as | |
| 220 # a parameter. The scopes should contain the following mappings. | |
| 221 # | |
| 222 # target: The target name for the copy_tree() target. | |
| 223 # visibility: The visibility for the copy_tree() target. | |
| 224 # source: The source directory relative to this directory. | |
| 225 # dest: The destination directory for the copy_tree() target. | |
| 226 # deps: Any deps needed for the copy_tree() target. | |
| 227 # ignore_patterns: Patterns to ignore when walking the directory tree. | |
| 228 # This should be '{}' if nothing should be ignored. | |
| 229 # | |
| 230 # copy_trees() will then make sure each invocation of copy_tree() has the | |
| 231 # correct 'inputs' parameter | |
| 232 template("copy_trees") { | |
|
zra
2017/08/09 18:05:01
I moved this to copy_tree.gni
| |
| 233 assert(defined(invoker.sources), "$target_name must define 'source'") | |
| 234 sources = invoker.sources | |
| 235 copy_tree_source_paths = [] | |
| 236 foreach(copy_tree_spec, sources) { | |
| 237 copy_tree_source_paths += [ | |
| 238 rebase_path(copy_tree_spec.source), | |
| 239 copy_tree_spec.ignore_patterns | |
| 240 ] | |
| 241 } | |
| 242 # A scope containing a single value "sources" | |
|
rmacnak
2017/08/07 22:20:19
Evaluate script output as GN, producing a scope...
zra
2017/08/09 18:05:01
Done.
| |
| 243 copy_tree_inputs_scope = exec_script("../tools/copy_tree.py", | |
| 244 ["--gn"] + copy_tree_source_paths, | |
| 245 "scope") | |
| 246 # A list of lists of input source files for copy_tree. | |
| 247 copy_tree_inputs = copy_tree_inputs_scope.sources | |
| 248 copy_tree_inputs_index = 0 | |
| 249 foreach(copy_tree_spec, sources) { | |
| 250 copy_tree(copy_tree_spec.target) { | |
| 251 visibility = copy_tree_spec.visibility | |
| 252 source = copy_tree_spec.source | |
| 253 dest = copy_tree_spec.dest | |
| 254 inputs = copy_tree_inputs[copy_tree_inputs_index] | |
| 255 if (defined(copy_tree_spec.deps)) { | |
| 256 deps = copy_tree_spec.deps | |
| 257 } | |
| 258 if (copy_tree_spec.ignore_patterns != "{}") { | |
| 259 exclude = copy_tree_spec.ignore_patterns | |
| 260 } | |
| 261 } | |
| 262 copy_tree_inputs_index = copy_tree_inputs_index + 1 | |
| 263 } | |
| 264 } | |
| 265 | |
| 266 # From here down to the copy_trees() invocation, we collect all the information | |
| 267 # about trees that need to be copied in the list of scopes, copy_tree_specs. | |
| 268 copy_tree_specs = [] | |
| 269 | |
| 270 # This loop generates rules for copying analyzer sources into lib/ | |
| 271 foreach(analyzer_source_dir, _analyzer_source_dirs) { | |
| 272 copy_tree_specs += [{ | |
| 273 target = "copy_${analyzer_source_dir}_source_dir" | |
| 274 visibility = [ ":copy_analyzer_sources" ] | |
| 275 source = "../pkg/$analyzer_source_dir" | |
| 276 dest = "$root_out_dir/dart-sdk/lib/$analyzer_source_dir" | |
| 277 ignore_patterns = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore,packages,test,testc ases" | |
| 278 }] | |
| 279 } | |
| 280 | |
| 281 # This rule copies dartdoc templates to | |
| 282 # bin/snapshots/resources/dartdoc/templates | |
| 283 copy_tree_specs += [{ | |
| 284 target = "copy_dartdoc_templates" | |
| 285 visibility = [ ":copy_dartdoc_files" ] | |
| 286 source = "../third_party/pkg/dartdoc/lib/templates" | |
| 287 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/templates" | |
| 288 ignore_patterns = "{}" | |
| 289 }] | |
| 290 | |
| 291 # This rule copies dartdoc resources to | |
| 292 # bin/snapshots/resources/dartdoc/resources | |
| 293 copy_tree_specs += [{ | |
| 294 target = "copy_dartdoc_resources" | |
| 295 visibility = [ ":copy_dartdoc_files" ] | |
| 296 source = "../third_party/pkg/dartdoc/lib/resources" | |
| 297 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/resources" | |
| 298 ignore_patterns = "{}" | |
| 299 }] | |
| 300 | |
| 301 # This rule copies js needed by ddc to lib/dev_compiler | |
| 302 copy_tree_specs += [{ | |
| 303 target = "copy_dev_compiler_js" | |
| 304 visibility = [ | |
| 305 ":copy_dev_compiler_sdk", | |
| 306 ":copy_dev_compiler_require_js", | |
| 307 ":copy_dev_compiler_tools", | |
| 308 ] | |
| 309 source = "../pkg/dev_compiler/lib/js" | |
| 310 dest = "$root_out_dir/dart-sdk/lib/dev_compiler" | |
| 311 ignore_patterns = "{}" | |
| 312 }] | |
| 313 | |
| 314 # This rule copies pub assets to lib/_internal/pub/asset | |
| 315 copy_tree_specs += [{ | |
| 316 target = "copy_pub_assets" | |
| 317 visibility = [ | |
| 318 ":create_common_sdk", | |
| 319 ":copy_7zip", | |
| 320 ] | |
| 321 deps = [ | |
| 322 ":copy_libraries", | |
| 323 ] | |
| 324 source = "../third_party/pkg/pub/lib/src/asset" | |
| 325 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset" | |
| 326 ignore_patterns = "{}" | |
| 327 }] | |
| 328 | |
| 329 # This loop generates rules to copy libraries to lib/ | |
| 330 foreach(library, _full_sdk_libraries) { | |
| 331 copy_tree_specs += [{ | |
| 332 target = "copy_${library}_library" | |
| 333 visibility = [ | |
| 334 ":copy_platform_sdk_libraries", | |
| 335 ":copy_full_sdk_libraries", | |
| 336 ] | |
| 337 source = "lib/$library" | |
| 338 dest = "$root_out_dir/dart-sdk/lib/$library" | |
| 339 ignore_patterns = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore" | |
| 340 }] | |
| 341 } | |
| 342 | |
| 343 if (is_win) { | |
| 344 copy_tree_specs += [{ | |
| 345 target = "copy_7zip" | |
| 346 visibility = [ ":create_common_sdk" ] | |
| 347 deps = [ | |
| 348 ":copy_libraries", | |
| 349 ":copy_pub_assets", | |
| 350 ] | |
| 351 source = "../third_party/7zip" | |
| 352 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset/7zip" | |
| 353 ignore_patterns = ".svn" | |
| 354 }] | |
| 355 } | |
| 356 | |
| 357 # This generates all of the copy_tree() targets. | |
| 358 copy_trees("copy_trees") { | |
| 359 sources = copy_tree_specs | |
| 360 } | |
| 361 | |
| 218 # Copies the Dart VM binary into bin/ | 362 # Copies the Dart VM binary into bin/ |
| 219 copy("copy_dart") { | 363 copy("copy_dart") { |
| 220 visibility = [ ":create_common_sdk" ] | 364 visibility = [ ":create_common_sdk" ] |
| 221 deps = [ | 365 deps = [ |
| 222 "../runtime/bin:dart", | 366 "../runtime/bin:dart", |
| 223 ] | 367 ] |
| 224 dart_out = get_label_info("../runtime/bin:dart", "root_out_dir") | 368 dart_out = get_label_info("../runtime/bin:dart", "root_out_dir") |
| 225 if (is_win) { | 369 if (is_win) { |
| 226 sources = [ | 370 sources = [ |
| 227 "$dart_out/dart.exe", | 371 "$dart_out/dart.exe", |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 374 # This is the main rule for copying snapshots from _full_sdk_snapshots to | 518 # This is the main rule for copying snapshots from _full_sdk_snapshots to |
| 375 # bin/snapshots | 519 # bin/snapshots |
| 376 group("copy_full_sdk_snapshots") { | 520 group("copy_full_sdk_snapshots") { |
| 377 visibility = [ ":create_full_sdk" ] | 521 visibility = [ ":create_full_sdk" ] |
| 378 deps = [] | 522 deps = [] |
| 379 foreach(snapshot, _full_sdk_snapshots) { | 523 foreach(snapshot, _full_sdk_snapshots) { |
| 380 deps += [ ":copy_${snapshot[0]}_snapshot" ] | 524 deps += [ ":copy_${snapshot[0]}_snapshot" ] |
| 381 } | 525 } |
| 382 } | 526 } |
| 383 | 527 |
| 384 # This loop generates rules for copying analyzer sources into lib/ | |
| 385 foreach(analyzer_source_dir, _analyzer_source_dirs) { | |
| 386 copy_tree("copy_${analyzer_source_dir}_source_dir") { | |
| 387 visibility = [ ":copy_analyzer_sources" ] | |
| 388 source = "../pkg/$analyzer_source_dir" | |
| 389 dest = "$root_out_dir/dart-sdk/lib/$analyzer_source_dir" | |
| 390 exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore,packages,test,testcases" | |
| 391 } | |
| 392 } | |
| 393 | |
| 394 # This is the main rule for copying analyzer sources to lib/ | 528 # This is the main rule for copying analyzer sources to lib/ |
| 395 group("copy_analyzer_sources") { | 529 group("copy_analyzer_sources") { |
| 396 visibility = [ ":create_common_sdk" ] | 530 visibility = [ ":create_common_sdk" ] |
| 397 deps = [] | 531 deps = [] |
| 398 foreach(analyzer_source_dir, _analyzer_source_dirs) { | 532 foreach(analyzer_source_dir, _analyzer_source_dirs) { |
| 399 deps += [ ":copy_${analyzer_source_dir}_source_dir" ] | 533 deps += [ ":copy_${analyzer_source_dir}_source_dir" ] |
| 400 } | 534 } |
| 401 } | 535 } |
| 402 | 536 |
| 403 # This rule copies dartdoc templates to | |
| 404 # bin/snapshots/resources/dartdoc/templates | |
| 405 copy_tree("copy_dartdoc_templates") { | |
| 406 visibility = [ ":copy_dartdoc_files" ] | |
| 407 source = "../third_party/pkg/dartdoc/lib/templates" | |
| 408 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/templates" | |
| 409 } | |
| 410 | |
| 411 # This rule copies dartdoc resources to | |
| 412 # bin/snapshots/resources/dartdoc/resources | |
| 413 copy_tree("copy_dartdoc_resources") { | |
| 414 visibility = [ ":copy_dartdoc_files" ] | |
| 415 source = "../third_party/pkg/dartdoc/lib/resources" | |
| 416 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/resources" | |
| 417 } | |
| 418 | |
| 419 # This rule writes the .packages file for dartdoc resources. | 537 # This rule writes the .packages file for dartdoc resources. |
| 420 write_file("$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/.packages", | 538 write_file("$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/.packages", |
| 421 "dartdoc:.") | 539 "dartdoc:.") |
| 422 | 540 |
| 423 # This is the main rule for copying the files that dartdoc needs. | 541 # This is the main rule for copying the files that dartdoc needs. |
| 424 group("copy_dartdoc_files") { | 542 group("copy_dartdoc_files") { |
| 425 visibility = [ ":create_common_sdk" ] | 543 visibility = [ ":create_common_sdk" ] |
| 426 deps = [ | 544 deps = [ |
| 427 ":copy_dartdoc_resources", | 545 ":copy_dartdoc_resources", |
| 428 ":copy_dartdoc_templates", | 546 ":copy_dartdoc_templates", |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 483 ":copy_libraries", | 601 ":copy_libraries", |
| 484 ] | 602 ] |
| 485 sources = [ | 603 sources = [ |
| 486 "../pkg/dev_compiler/lib/sdk/ddc_sdk.sum", | 604 "../pkg/dev_compiler/lib/sdk/ddc_sdk.sum", |
| 487 ] | 605 ] |
| 488 outputs = [ | 606 outputs = [ |
| 489 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}", | 607 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}", |
| 490 ] | 608 ] |
| 491 } | 609 } |
| 492 | 610 |
| 493 # This rule copies js needed by ddc to lib/dev_compiler | |
| 494 copy_tree("copy_dev_compiler_js") { | |
| 495 visibility = [ | |
| 496 ":copy_dev_compiler_sdk", | |
| 497 ":copy_dev_compiler_require_js", | |
| 498 ":copy_dev_compiler_tools", | |
| 499 ] | |
| 500 source = "../pkg/dev_compiler/lib/js" | |
| 501 dest = "$root_out_dir/dart-sdk/lib/dev_compiler" | |
| 502 } | |
| 503 | |
| 504 # This rule copies require.js to lib/dev_compiler/amd | 611 # This rule copies require.js to lib/dev_compiler/amd |
| 505 copy("copy_dev_compiler_require_js") { | 612 copy("copy_dev_compiler_require_js") { |
| 506 visibility = [ ":copy_dev_compiler_sdk" ] | 613 visibility = [ ":copy_dev_compiler_sdk" ] |
| 507 deps = [ | 614 deps = [ |
| 508 ":copy_dev_compiler_js", | 615 ":copy_dev_compiler_js", |
| 509 ] | 616 ] |
| 510 sources = [ | 617 sources = [ |
| 511 "../third_party/requirejs/require.js", | 618 "../third_party/requirejs/require.js", |
| 512 ] | 619 ] |
| 513 outputs = [ | 620 outputs = [ |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 564 sources = [ | 671 sources = [ |
| 565 "lib/dart_client.platform", | 672 "lib/dart_client.platform", |
| 566 "lib/dart_server.platform", | 673 "lib/dart_server.platform", |
| 567 "lib/dart_shared.platform", | 674 "lib/dart_shared.platform", |
| 568 ] | 675 ] |
| 569 outputs = [ | 676 outputs = [ |
| 570 "$root_out_dir/dart-sdk/lib/{{source_file_part}}", | 677 "$root_out_dir/dart-sdk/lib/{{source_file_part}}", |
| 571 ] | 678 ] |
| 572 } | 679 } |
| 573 | 680 |
| 574 # This rule copies pub assets to lib/_internal/pub/asset | |
| 575 copy_tree("copy_pub_assets") { | |
| 576 visibility = [ | |
| 577 ":create_common_sdk", | |
| 578 ":copy_7zip", | |
| 579 ] | |
| 580 deps = [ | |
| 581 ":copy_libraries", | |
| 582 ] | |
| 583 source = "../third_party/pkg/pub/lib/src/asset" | |
| 584 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset" | |
| 585 } | |
| 586 | |
| 587 # This loop generates rules to copy libraries to lib/ | |
| 588 foreach(library, _full_sdk_libraries) { | |
| 589 copy_tree("copy_${library}_library") { | |
| 590 visibility = [ | |
| 591 ":copy_platform_sdk_libraries", | |
| 592 ":copy_full_sdk_libraries", | |
| 593 ] | |
| 594 source = "lib/$library" | |
| 595 dest = "$root_out_dir/dart-sdk/lib/$library" | |
| 596 exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore" | |
| 597 } | |
| 598 } | |
| 599 | |
| 600 # This is the main rule to copy libraries in _platform_sdk_libraries to lib/ | 681 # This is the main rule to copy libraries in _platform_sdk_libraries to lib/ |
| 601 group("copy_platform_sdk_libraries") { | 682 group("copy_platform_sdk_libraries") { |
| 602 visibility = [ | 683 visibility = [ |
| 603 ":create_platform_sdk", | 684 ":create_platform_sdk", |
| 604 ":copy_libraries", | 685 ":copy_libraries", |
| 605 ] | 686 ] |
| 606 deps = [] | 687 deps = [] |
| 607 foreach(library, _platform_sdk_libraries) { | 688 foreach(library, _platform_sdk_libraries) { |
| 608 deps += [ ":copy_${library}_library" ] | 689 deps += [ ":copy_${library}_library" ] |
| 609 } | 690 } |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 626 deps = [ | 707 deps = [ |
| 627 ":copy_platform_sdk_libraries", | 708 ":copy_platform_sdk_libraries", |
| 628 ] | 709 ] |
| 629 } else { | 710 } else { |
| 630 deps = [ | 711 deps = [ |
| 631 ":copy_full_sdk_libraries", | 712 ":copy_full_sdk_libraries", |
| 632 ] | 713 ] |
| 633 } | 714 } |
| 634 } | 715 } |
| 635 | 716 |
| 636 if (is_win) { | |
| 637 copy_tree("copy_7zip") { | |
| 638 visibility = [ ":create_common_sdk" ] | |
| 639 deps = [ | |
| 640 ":copy_libraries", | |
| 641 ":copy_pub_assets", | |
| 642 ] | |
| 643 source = "../third_party/7zip" | |
| 644 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset/7zip" | |
| 645 exclude = ".svn" | |
| 646 } | |
| 647 } | |
| 648 | |
| 649 # This rule writes the version file. | 717 # This rule writes the version file. |
| 650 action("write_version_file") { | 718 action("write_version_file") { |
| 651 visibility = [ ":create_common_sdk" ] | 719 visibility = [ ":create_common_sdk" ] |
| 652 output = "$root_out_dir/dart-sdk/version" | 720 output = "$root_out_dir/dart-sdk/version" |
| 653 outputs = [ | 721 outputs = [ |
| 654 output, | 722 output, |
| 655 ] | 723 ] |
| 656 script = "../tools/write_version_file.py" | 724 script = "../tools/write_version_file.py" |
| 657 args = [ | 725 args = [ |
| 658 "--output", | 726 "--output", |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 783 group("create_sdk") { | 851 group("create_sdk") { |
| 784 deps = [ | 852 deps = [ |
| 785 ":create_common_sdk", | 853 ":create_common_sdk", |
| 786 ] | 854 ] |
| 787 if (dart_platform_sdk) { | 855 if (dart_platform_sdk) { |
| 788 deps += [ ":create_platform_sdk" ] | 856 deps += [ ":create_platform_sdk" ] |
| 789 } else { | 857 } else { |
| 790 deps += [ ":create_full_sdk" ] | 858 deps += [ ":create_full_sdk" ] |
| 791 } | 859 } |
| 792 } | 860 } |
| OLD | NEW |