OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 # IMPORTANT: | 5 # IMPORTANT: |
6 # Please don't directly include this file if you are building via gyp_chromium, | 6 # Please don't directly include this file if you are building via gyp_chromium, |
7 # since gyp_chromium is automatically forcing its inclusion. | 7 # since gyp_chromium is automatically forcing its inclusion. |
8 { | 8 { |
9 # Variables expected to be overriden on the GYP command line (-D) or by | 9 # Variables expected to be overriden on the GYP command line (-D) or by |
10 # ~/.gyp/include.gypi. | 10 # ~/.gyp/include.gypi. |
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 'video_hole%': 0, | 618 'video_hole%': 0, |
619 | 619 |
620 # Automatically select platforms under ozone. Turn this off to | 620 # Automatically select platforms under ozone. Turn this off to |
621 # build only explicitly selected platforms. | 621 # build only explicitly selected platforms. |
622 'ozone_auto_platforms%': 1, | 622 'ozone_auto_platforms%': 1, |
623 | 623 |
624 # If this is set clang is used as host compiler, but not as target | 624 # If this is set clang is used as host compiler, but not as target |
625 # compiler. Always do this by default. | 625 # compiler. Always do this by default. |
626 'host_clang%': 1, | 626 'host_clang%': 1, |
627 | 627 |
628 # Variables to control Link-Time Optimizations (LTO). | 628 # Variables to control Link-Time Optimization (LTO). |
629 # Note: the variables must *not* be enabled at the same time. | 629 # On Android, the variable use_lto enables LTO on code compiled with -Os, |
630 # In this case LTO would 'merge' the optimization flags | 630 # and use_lto_o2 enables LTO on code compiled with -O2. On other |
631 # at link-time which would lead to all code be optimized with -O2. | 631 # platforms, use_lto enables LTO in all translation units, and use_lto_o2 |
632 # Enable LTO on the code compiled with -Os. | 632 # has no effect. |
633 # See crbug.com/407544 | 633 # |
| 634 # On Linux and Android, when using LLVM LTO, the script |
| 635 # build/download_gold_plugin.py must be run to download a linker plugin. |
| 636 # On Mac, LLVM needs to be built from scratch using |
| 637 # tools/clang/scripts/update.py and the absolute path to |
| 638 # third_party/llvm-build/Release+Asserts/lib must be added to |
| 639 # $DYLD_LIBRARY_PATH to pick up the right version of the linker plugin. |
| 640 # |
| 641 # On Android, the variables must *not* be enabled at the same time. |
| 642 # In this case LTO would 'merge' the optimization flags at link-time |
| 643 # which would lead to all code be optimized with -O2. See crbug.com/407544 |
634 'use_lto%': 0, | 644 'use_lto%': 0, |
635 # Enable LTO on code compiled with -O2. | |
636 'use_lto_o2%': 0, | 645 'use_lto_o2%': 0, |
637 | 646 |
638 # Allowed level of identical code folding in the gold linker. | 647 # Allowed level of identical code folding in the gold linker. |
639 'gold_icf_level%': 'safe', | 648 'gold_icf_level%': 'safe', |
640 | 649 |
641 # Libxkbcommon usage. | 650 # Libxkbcommon usage. |
642 'use_xkbcommon%': 0, | 651 'use_xkbcommon%': 0, |
643 | 652 |
644 # Control Flow Integrity for virtual calls. | 653 # Control Flow Integrity for virtual calls. |
645 # See http://clang.llvm.org/docs/ControlFlowIntegrity.html | 654 # See http://clang.llvm.org/docs/ControlFlowIntegrity.html |
(...skipping 5157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5803 ['CXX.host_wrapper', '<(gomadir)/gomacc'], | 5812 ['CXX.host_wrapper', '<(gomadir)/gomacc'], |
5804 ], | 5813 ], |
5805 }], | 5814 }], |
5806 ['use_lto==1', { | 5815 ['use_lto==1', { |
5807 'target_defaults': { | 5816 'target_defaults': { |
5808 'target_conditions': [ | 5817 'target_conditions': [ |
5809 ['_toolset=="target"', { | 5818 ['_toolset=="target"', { |
5810 'cflags': [ | 5819 'cflags': [ |
5811 '-flto', | 5820 '-flto', |
5812 ], | 5821 ], |
| 5822 'xcode_settings': { |
| 5823 'LLVM_LTO': 'YES', |
| 5824 }, |
| 5825 }], |
| 5826 # Work-around for http://openradar.appspot.com/20356002 |
| 5827 ['_toolset=="target" and _type!="static_library"', { |
| 5828 'xcode_settings': { |
| 5829 'OTHER_LDFLAGS': [ |
| 5830 '-Wl,-all_load', |
| 5831 ], |
| 5832 }, |
5813 }], | 5833 }], |
5814 ], | 5834 ], |
5815 }, | 5835 }, |
5816 }], | 5836 }], |
5817 ['use_lto==1 and clang==0', { | 5837 ['use_lto==1 and clang==0', { |
5818 'target_defaults': { | 5838 'target_defaults': { |
5819 'target_conditions': [ | 5839 'target_conditions': [ |
5820 ['_toolset=="target"', { | 5840 ['_toolset=="target"', { |
5821 'cflags': [ | 5841 'cflags': [ |
5822 '-ffat-lto-objects', | 5842 '-ffat-lto-objects', |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6069 # settings in target dicts. SYMROOT is a special case, because many other | 6089 # settings in target dicts. SYMROOT is a special case, because many other |
6070 # Xcode variables depend on it, including variables such as | 6090 # Xcode variables depend on it, including variables such as |
6071 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something | 6091 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something |
6072 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the | 6092 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the |
6073 # files to appear (when present) in the UI as actual files and not red | 6093 # files to appear (when present) in the UI as actual files and not red |
6074 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, | 6094 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, |
6075 # and therefore SYMROOT, needs to be set at the project level. | 6095 # and therefore SYMROOT, needs to be set at the project level. |
6076 'SYMROOT': '<(DEPTH)/xcodebuild', | 6096 'SYMROOT': '<(DEPTH)/xcodebuild', |
6077 }, | 6097 }, |
6078 } | 6098 } |
OLD | NEW |