| 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 import("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 import("//build/config/chrome_build.gni") | 6 import("//build/config/chrome_build.gni") |
| 7 import("//build/config/compiler/compiler.gni") | 7 import("//build/config/compiler/compiler.gni") |
| 8 import("//build/config/nacl/config.gni") | 8 import("//build/config/nacl/config.gni") |
| 9 import("//build/toolchain/cc_wrapper.gni") | 9 import("//build/toolchain/cc_wrapper.gni") |
| 10 import("//build/toolchain/toolchain.gni") | 10 import("//build/toolchain/toolchain.gni") |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 85 |
| 86 # AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided | 86 # AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided |
| 87 # optimization that GCC supports. It used by ChromeOS in their official | 87 # optimization that GCC supports. It used by ChromeOS in their official |
| 88 # builds. To use it, set auto_profile_path to the path to a file containing | 88 # builds. To use it, set auto_profile_path to the path to a file containing |
| 89 # the needed gcov profiling data. | 89 # the needed gcov profiling data. |
| 90 auto_profile_path = "" | 90 auto_profile_path = "" |
| 91 | 91 |
| 92 # Optimize for coverage guided fuzzing (balance between speed and number of | 92 # Optimize for coverage guided fuzzing (balance between speed and number of |
| 93 # branches) | 93 # branches) |
| 94 optimize_for_fuzzing = false | 94 optimize_for_fuzzing = false |
| 95 |
| 96 # Optimize symbol files for maximizing goma cache hit rate. |
| 97 strip_absolute_paths_from_debug_symbols = false |
| 95 } | 98 } |
| 96 | 99 |
| 97 if (is_clang && !is_nacl) { | 100 if (is_clang && !is_nacl) { |
| 98 update_args = [ "--print-revision" ] | 101 update_args = [ "--print-revision" ] |
| 99 if (llvm_force_head_revision) { | 102 if (llvm_force_head_revision) { |
| 100 update_args += [ "--llvm-force-head-revision" ] | 103 update_args += [ "--llvm-force-head-revision" ] |
| 101 } | 104 } |
| 102 clang_revision = | 105 clang_revision = |
| 103 exec_script("//tools/clang/scripts/update.py", update_args, "trim string") | 106 exec_script("//tools/clang/scripts/update.py", update_args, "trim string") |
| 104 } | 107 } |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and | 421 # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and |
| 419 # Windows developers rely on it (crbug.com/636109) so only do this on Windows. | 422 # Windows developers rely on it (crbug.com/636109) so only do this on Windows. |
| 420 if (is_clang && is_win) { | 423 if (is_clang && is_win) { |
| 421 cflags += [ "-fdiagnostics-absolute-paths" ] | 424 cflags += [ "-fdiagnostics-absolute-paths" ] |
| 422 } | 425 } |
| 423 | 426 |
| 424 # Makes builds independent of absolute file path. | 427 # Makes builds independent of absolute file path. |
| 425 # clang-cl (used if is_win) doesn't expose this flag. | 428 # clang-cl (used if is_win) doesn't expose this flag. |
| 426 # Currently disabled for nacl since its toolchain lacks this flag (too old). | 429 # Currently disabled for nacl since its toolchain lacks this flag (too old). |
| 427 # TODO(zforman): Once nacl's toolchain is updated, remove check. | 430 # TODO(zforman): Once nacl's toolchain is updated, remove check. |
| 428 if (is_clang && is_linux) { | 431 if (is_clang && is_linux && strip_absolute_paths_from_debug_symbols) { |
| 429 absolute_path = rebase_path("//.") | 432 absolute_path = rebase_path("//.") |
| 430 cflags += [ "-fdebug-prefix-map=$absolute_path=." ] | 433 cflags += [ "-fdebug-prefix-map=$absolute_path=." ] |
| 431 } | 434 } |
| 432 | 435 |
| 433 # C++11 compiler flags setup. | 436 # C++11 compiler flags setup. |
| 434 # --------------------------- | 437 # --------------------------- |
| 435 if (is_linux || is_android || (is_nacl && is_clang)) { | 438 if (is_linux || is_android || (is_nacl && is_clang)) { |
| 436 # gnu++11 instead of c++11 is needed because some code uses typeof() (a | 439 # gnu++11 instead of c++11 is needed because some code uses typeof() (a |
| 437 # GNU extension). | 440 # GNU extension). |
| 438 # TODO(thakis): Eventually switch this to c++11 instead, | 441 # TODO(thakis): Eventually switch this to c++11 instead, |
| (...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1698 | 1701 |
| 1699 if (is_ios || is_mac) { | 1702 if (is_ios || is_mac) { |
| 1700 # On Mac and iOS, this enables support for ARC (automatic ref-counting). | 1703 # On Mac and iOS, this enables support for ARC (automatic ref-counting). |
| 1701 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. | 1704 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. |
| 1702 config("enable_arc") { | 1705 config("enable_arc") { |
| 1703 common_flags = [ "-fobjc-arc" ] | 1706 common_flags = [ "-fobjc-arc" ] |
| 1704 cflags_objc = common_flags | 1707 cflags_objc = common_flags |
| 1705 cflags_objcc = common_flags | 1708 cflags_objcc = common_flags |
| 1706 } | 1709 } |
| 1707 } | 1710 } |
| OLD | NEW |