Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 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 # ============================================================================= | 5 # ============================================================================= |
| 6 # PLATFORM SELECTION | 6 # PLATFORM SELECTION |
| 7 # ============================================================================= | 7 # ============================================================================= |
| 8 # | 8 # |
| 9 # There are two main things to set: "os" and "cpu". The "toolchain" is the name | 9 # There are two main things to set: "os" and "cpu". The "toolchain" is the name |
| 10 # of the GN thing that encodes combinations of these things. | 10 # of the GN thing that encodes combinations of these things. |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 597 # on multiple platforms, but this whole block of code (how we define | 597 # on multiple platforms, but this whole block of code (how we define |
| 598 # host_toolchain) needs to be reworked regardless to key off of host_os | 598 # host_toolchain) needs to be reworked regardless to key off of host_os |
| 599 # and host_cpu rather than the is_* variables. | 599 # and host_cpu rather than the is_* variables. |
| 600 host_toolchain = "//build/toolchain/linux:clang_x64" | 600 host_toolchain = "//build/toolchain/linux:clang_x64" |
| 601 } | 601 } |
| 602 | 602 |
| 603 # ============================================================================== | 603 # ============================================================================== |
| 604 # COMPONENT SETUP | 604 # COMPONENT SETUP |
| 605 # ============================================================================== | 605 # ============================================================================== |
| 606 | 606 |
| 607 # TODO(brettw) erase this once the built-in "component" function is removed. | 607 # TODO(brettw): Convert component_mode to being a non-exported variable |
| 608 # ("_component_mode" instead) once ICU's BUILD.gn file is updated to use | |
| 609 # is_component_build instead. | |
| 608 if (is_component_build) { | 610 if (is_component_build) { |
| 609 component_mode = "shared_library" | 611 component_mode = "shared_library" |
| 610 } else { | 612 } else { |
| 611 component_mode = "source_set" | 613 component_mode = "source_set" |
| 612 } | 614 } |
| 613 | 615 |
| 614 template("component") { | 616 template("component") { |
| 615 if (is_component_build) { | 617 target(component_mode, target_name) { |
|
Peng
2015/08/05 18:45:38
Build error for mandoline at this line.
ERROR at
| |
| 616 shared_library(target_name) { | 618 forward_variables_from(invoker, "*") |
| 617 # Configs will always be defined since we set_defaults for a component | |
| 618 # above. We want to use those rather than whatever came with the nested | |
| 619 # shared/static library inside the component. | |
| 620 configs = [] # Prevent list overwriting warning. | |
| 621 configs = invoker.configs | |
| 622 | 619 |
| 623 # The sources assignment filter will have already been applied when the | 620 # All shared libraries must have the sanitizer deps to properly link in |
| 624 # code was originally executed. We don't want to apply it again, since | 621 # asan mode (this target will be empty in other cases). |
| 625 # the original target may have override it for some assignments. | 622 if (!defined(deps)) { |
| 626 set_sources_assignment_filter([]) | 623 deps = [] |
| 627 | |
| 628 if (defined(invoker.all_dependent_configs)) { | |
| 629 all_dependent_configs = invoker.all_dependent_configs | |
| 630 } | |
| 631 if (defined(invoker.allow_circular_includes_from)) { | |
| 632 allow_circular_includes_from = invoker.allow_circular_includes_from | |
| 633 } | |
| 634 if (defined(invoker.cflags)) { | |
| 635 cflags = invoker.cflags | |
| 636 } | |
| 637 if (defined(invoker.cflags_c)) { | |
| 638 cflags_c = invoker.cflags_c | |
| 639 } | |
| 640 if (defined(invoker.cflags_cc)) { | |
| 641 cflags_cc = invoker.cflags_cc | |
| 642 } | |
| 643 if (defined(invoker.cflags_objc)) { | |
| 644 cflags_objc = invoker.cflags_objc | |
| 645 } | |
| 646 if (defined(invoker.cflags_objcc)) { | |
| 647 cflags_objcc = invoker.cflags_objcc | |
| 648 } | |
| 649 if (defined(invoker.check_includes)) { | |
| 650 check_includes = invoker.check_includes | |
| 651 } | |
| 652 if (defined(invoker.data)) { | |
| 653 data = invoker.data | |
| 654 } | |
| 655 if (defined(invoker.data_deps)) { | |
| 656 data_deps = invoker.data_deps | |
| 657 } | |
| 658 if (defined(invoker.datadeps)) { | |
| 659 datadeps = invoker.datadeps | |
| 660 } | |
| 661 if (defined(invoker.defines)) { | |
| 662 defines = invoker.defines | |
| 663 } | |
| 664 | |
| 665 # All shared libraries must have the sanitizer deps to properly link in | |
| 666 # asan mode (this target will be empty in other cases). | |
| 667 if (defined(invoker.deps)) { | |
| 668 deps = invoker.deps + [ "//build/config/sanitizers:deps" ] | |
| 669 } else { | |
| 670 deps = [ | |
| 671 "//build/config/sanitizers:deps", | |
| 672 ] | |
| 673 } | |
| 674 if (defined(invoker.forward_dependent_configs_from)) { | |
| 675 forward_dependent_configs_from = invoker.forward_dependent_configs_from | |
| 676 } | |
| 677 if (defined(invoker.include_dirs)) { | |
| 678 include_dirs = invoker.include_dirs | |
| 679 } | |
| 680 if (defined(invoker.ldflags)) { | |
| 681 ldflags = invoker.ldflags | |
| 682 } | |
| 683 if (defined(invoker.lib_dirs)) { | |
| 684 lib_dirs = invoker.lib_dirs | |
| 685 } | |
| 686 if (defined(invoker.libs)) { | |
| 687 libs = invoker.libs | |
| 688 } | |
| 689 if (defined(invoker.output_extension)) { | |
| 690 output_extension = invoker.output_extension | |
| 691 } | |
| 692 if (defined(invoker.output_name)) { | |
| 693 output_name = invoker.output_name | |
| 694 } | |
| 695 if (defined(invoker.public)) { | |
| 696 public = invoker.public | |
| 697 } | |
| 698 if (defined(invoker.public_configs)) { | |
| 699 public_configs = invoker.public_configs | |
| 700 } | |
| 701 if (defined(invoker.public_deps)) { | |
| 702 public_deps = invoker.public_deps | |
| 703 } | |
| 704 if (defined(invoker.sources)) { | |
| 705 sources = invoker.sources | |
| 706 } | |
| 707 if (defined(invoker.testonly)) { | |
| 708 testonly = invoker.testonly | |
| 709 } | |
| 710 if (defined(invoker.visibility)) { | |
| 711 visibility = invoker.visibility | |
| 712 } | |
| 713 } | 624 } |
| 714 } else { | 625 deps += [ "//build/config/sanitizers:deps" ] |
| 715 source_set(target_name) { | |
| 716 # See above. | |
| 717 configs = [] # Prevent list overwriting warning. | |
| 718 configs = invoker.configs | |
| 719 | |
| 720 # See above call. | |
| 721 set_sources_assignment_filter([]) | |
| 722 | |
| 723 if (defined(invoker.all_dependent_configs)) { | |
| 724 all_dependent_configs = invoker.all_dependent_configs | |
| 725 } | |
| 726 if (defined(invoker.allow_circular_includes_from)) { | |
| 727 allow_circular_includes_from = invoker.allow_circular_includes_from | |
| 728 } | |
| 729 if (defined(invoker.cflags)) { | |
| 730 cflags = invoker.cflags | |
| 731 } | |
| 732 if (defined(invoker.cflags_c)) { | |
| 733 cflags_c = invoker.cflags_c | |
| 734 } | |
| 735 if (defined(invoker.cflags_cc)) { | |
| 736 cflags_cc = invoker.cflags_cc | |
| 737 } | |
| 738 if (defined(invoker.cflags_objc)) { | |
| 739 cflags_objc = invoker.cflags_objc | |
| 740 } | |
| 741 if (defined(invoker.cflags_objcc)) { | |
| 742 cflags_objcc = invoker.cflags_objcc | |
| 743 } | |
| 744 if (defined(invoker.check_includes)) { | |
| 745 check_includes = invoker.check_includes | |
| 746 } | |
| 747 if (defined(invoker.data)) { | |
| 748 data = invoker.data | |
| 749 } | |
| 750 if (defined(invoker.data_deps)) { | |
| 751 data_deps = invoker.data_deps | |
| 752 } | |
| 753 if (defined(invoker.datadeps)) { | |
| 754 datadeps = invoker.datadeps | |
| 755 } | |
| 756 if (defined(invoker.defines)) { | |
| 757 defines = invoker.defines | |
| 758 } | |
| 759 if (defined(invoker.deps)) { | |
| 760 deps = invoker.deps | |
| 761 } | |
| 762 if (defined(invoker.forward_dependent_configs_from)) { | |
| 763 forward_dependent_configs_from = invoker.forward_dependent_configs_from | |
| 764 } | |
| 765 if (defined(invoker.include_dirs)) { | |
| 766 include_dirs = invoker.include_dirs | |
| 767 } | |
| 768 if (defined(invoker.ldflags)) { | |
| 769 ldflags = invoker.ldflags | |
| 770 } | |
| 771 if (defined(invoker.lib_dirs)) { | |
| 772 lib_dirs = invoker.lib_dirs | |
| 773 } | |
| 774 if (defined(invoker.libs)) { | |
| 775 libs = invoker.libs | |
| 776 } | |
| 777 if (defined(invoker.output_extension)) { | |
| 778 output_extension = invoker.output_extension | |
| 779 } | |
| 780 if (defined(invoker.output_name)) { | |
| 781 output_name = invoker.output_name | |
| 782 } | |
| 783 if (defined(invoker.public)) { | |
| 784 public = invoker.public | |
| 785 } | |
| 786 if (defined(invoker.public_configs)) { | |
| 787 public_configs = invoker.public_configs | |
| 788 } | |
| 789 if (defined(invoker.public_deps)) { | |
| 790 public_deps = invoker.public_deps | |
| 791 } | |
| 792 if (defined(invoker.sources)) { | |
| 793 sources = invoker.sources | |
| 794 } | |
| 795 if (defined(invoker.testonly)) { | |
| 796 testonly = invoker.testonly | |
| 797 } | |
| 798 if (defined(invoker.visibility)) { | |
| 799 visibility = invoker.visibility | |
| 800 } | |
| 801 } | |
| 802 } | 626 } |
| 803 } | 627 } |
| OLD | NEW |