| 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") |
| 11 import("//build_overrides/build.gni") | 11 import("//build_overrides/build.gni") |
| 12 | 12 |
| 13 if (current_cpu == "arm" || current_cpu == "arm64") { | 13 if (current_cpu == "arm" || current_cpu == "arm64") { |
| 14 import("//build/config/arm.gni") | 14 import("//build/config/arm.gni") |
| 15 } | 15 } |
| 16 if (current_cpu == "mipsel" || current_cpu == "mips64el") { | 16 if (current_cpu == "mipsel" || current_cpu == "mips64el") { |
| 17 import("//build/config/mips.gni") | 17 import("//build/config/mips.gni") |
| 18 } | 18 } |
| 19 if (is_win) { | |
| 20 import("//build/config/win/visual_studio_version.gni") | |
| 21 } | |
| 22 if (is_mac) { | 19 if (is_mac) { |
| 23 import("//build/config/mac/symbols.gni") | 20 import("//build/config/mac/symbols.gni") |
| 24 } | 21 } |
| 25 | 22 |
| 26 declare_args() { | 23 declare_args() { |
| 27 # Default to warnings as errors for default workflow, where we catch | 24 # Default to warnings as errors for default workflow, where we catch |
| 28 # warnings with known toolchains. Allow overriding this e.g. for Chromium | 25 # warnings with known toolchains. Allow overriding this e.g. for Chromium |
| 29 # builds on Linux that could use a different version of the compiler. | 26 # builds on Linux that could use a different version of the compiler. |
| 30 # With GCC, warnings in no-Chromium code are always not treated as errors. | 27 # With GCC, warnings in no-Chromium code are always not treated as errors. |
| 31 treat_warnings_as_errors = true | 28 treat_warnings_as_errors = true |
| (...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 | 894 |
| 898 # These are variable shadowing warnings that are new in VS2015. We | 895 # These are variable shadowing warnings that are new in VS2015. We |
| 899 # should work through these at some point -- they may be removed from | 896 # should work through these at some point -- they may be removed from |
| 900 # the RTM release in the /W4 set. | 897 # the RTM release in the /W4 set. |
| 901 "/wd4456", | 898 "/wd4456", |
| 902 "/wd4457", | 899 "/wd4457", |
| 903 "/wd4458", | 900 "/wd4458", |
| 904 "/wd4459", | 901 "/wd4459", |
| 905 ] | 902 ] |
| 906 | 903 |
| 907 if (visual_studio_version == "2015") { | 904 cflags += [ |
| 905 # C4312 is a VS 2015 64-bit warning for integer to larger pointer. |
| 906 # TODO(brucedawson): fix warnings, crbug.com/554200 |
| 907 "/wd4312", |
| 908 |
| 909 # TODO(brucedawson): http://crbug.com/593448 - C4595 is an 'illegal |
| 910 # inline operator new' warning that is new in VS 2015 Update 2. |
| 911 # This is equivalent to clang's no-inline-new-delete warning. |
| 912 # See http://bugs.icu-project.org/trac/ticket/11122 |
| 913 "/wd4595", |
| 914 ] |
| 915 |
| 916 if (current_cpu == "x86") { |
| 908 cflags += [ | 917 cflags += [ |
| 909 # C4312 is a VS 2015 64-bit warning for integer to larger pointer. | 918 # VC++ 2015 changes 32-bit size_t truncation warnings from 4244 to |
| 910 # TODO(brucedawson): fix warnings, crbug.com/554200 | 919 # 4267. Example: short TruncTest(size_t x) { return x; } |
| 911 "/wd4312", | 920 # Since we disable 4244 we need to disable 4267 during migration. |
| 912 | 921 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
| 913 # TODO(brucedawson): http://crbug.com/593448 - C4595 is an 'illegal | 922 "/wd4267", |
| 914 # inline operator new' warning that is new in VS 2015 Update 2. | |
| 915 # This is equivalent to clang's no-inline-new-delete warning. | |
| 916 # See http://bugs.icu-project.org/trac/ticket/11122 | |
| 917 "/wd4595", | |
| 918 ] | 923 ] |
| 919 | |
| 920 if (current_cpu == "x86") { | |
| 921 cflags += [ | |
| 922 # VC++ 2015 changes 32-bit size_t truncation warnings from 4244 to | |
| 923 # 4267. Example: short TruncTest(size_t x) { return x; } | |
| 924 # Since we disable 4244 we need to disable 4267 during migration. | |
| 925 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | |
| 926 "/wd4267", | |
| 927 ] | |
| 928 } | |
| 929 } | 924 } |
| 930 | 925 |
| 931 # VS xtree header file needs to be patched or 4702 (unreachable code | 926 # VS xtree header file needs to be patched or 4702 (unreachable code |
| 932 # warning) is reported if _HAS_EXCEPTIONS=0. Disable the warning if xtree is | 927 # warning) is reported if _HAS_EXCEPTIONS=0. Disable the warning if xtree is |
| 933 # not patched. | 928 # not patched. |
| 934 if (!msvs_xtree_patched && | 929 if (!msvs_xtree_patched && |
| 935 exec_script("../../win_is_xtree_patched.py", [], "value") == 0) { | 930 exec_script("../../win_is_xtree_patched.py", [], "value") == 0) { |
| 936 cflags += [ "/wd4702" ] # Unreachable code. | 931 cflags += [ "/wd4702" ] # Unreachable code. |
| 937 } | 932 } |
| 938 | 933 |
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1512 # | 1507 # |
| 1513 # configs -= [ "//build/config/compiler:default_symbols" ] | 1508 # configs -= [ "//build/config/compiler:default_symbols" ] |
| 1514 # configs += [ "//build/config/compiler:symbols" ] | 1509 # configs += [ "//build/config/compiler:symbols" ] |
| 1515 | 1510 |
| 1516 # Full symbols. | 1511 # Full symbols. |
| 1517 config("symbols") { | 1512 config("symbols") { |
| 1518 if (is_win) { | 1513 if (is_win) { |
| 1519 import("//build/toolchain/goma.gni") | 1514 import("//build/toolchain/goma.gni") |
| 1520 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue. | 1515 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue. |
| 1521 | 1516 |
| 1522 if (is_win_fastlink && visual_studio_version != "2013") { | 1517 if (is_win_fastlink) { |
| 1523 # Tell VS 2015+ to create a PDB that references debug | 1518 # Tell VS 2015+ to create a PDB that references debug |
| 1524 # information in .obj and .lib files instead of copying | 1519 # information in .obj and .lib files instead of copying |
| 1525 # it all. This flag is incompatible with /PROFILE | 1520 # it all. This flag is incompatible with /PROFILE |
| 1526 ldflags = [ "/DEBUG:FASTLINK" ] | 1521 ldflags = [ "/DEBUG:FASTLINK" ] |
| 1527 } else { | 1522 } else { |
| 1528 ldflags = [ "/DEBUG" ] | 1523 ldflags = [ "/DEBUG" ] |
| 1529 } | 1524 } |
| 1530 } else { | 1525 } else { |
| 1531 if (is_mac || is_ios) { | 1526 if (is_mac || is_ios) { |
| 1532 cflags = [ "-gdwarf-2" ] | 1527 cflags = [ "-gdwarf-2" ] |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1555 asmflags = cflags | 1550 asmflags = cflags |
| 1556 ldflags = [] | 1551 ldflags = [] |
| 1557 } | 1552 } |
| 1558 } | 1553 } |
| 1559 | 1554 |
| 1560 # Minimal symbols. | 1555 # Minimal symbols. |
| 1561 config("minimal_symbols") { | 1556 config("minimal_symbols") { |
| 1562 if (is_win) { | 1557 if (is_win) { |
| 1563 # Linker symbols for backtraces only. | 1558 # Linker symbols for backtraces only. |
| 1564 cflags = [] | 1559 cflags = [] |
| 1565 if (is_win_fastlink && visual_studio_version != "2013") { | 1560 if (is_win_fastlink) { |
| 1566 # Tell VS 2015+ to create a PDB that references debug | 1561 # Tell VS 2015+ to create a PDB that references debug |
| 1567 # information in .obj and .lib files instead of copying | 1562 # information in .obj and .lib files instead of copying |
| 1568 # it all. This flag is incompatible with /PROFILE | 1563 # it all. This flag is incompatible with /PROFILE |
| 1569 ldflags = [ "/DEBUG:FASTLINK" ] | 1564 ldflags = [ "/DEBUG:FASTLINK" ] |
| 1570 } else { | 1565 } else { |
| 1571 ldflags = [ "/DEBUG" ] | 1566 ldflags = [ "/DEBUG" ] |
| 1572 } | 1567 } |
| 1573 } else { | 1568 } else { |
| 1574 if (is_android) { | 1569 if (is_android) { |
| 1575 # Breakpad can't handle DWARF 4 symbols properly yet, so use DWARF 3 | 1570 # Breakpad can't handle DWARF 4 symbols properly yet, so use DWARF 3 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1613 | 1608 |
| 1614 if (is_ios || is_mac) { | 1609 if (is_ios || is_mac) { |
| 1615 # On Mac and iOS, this enables support for ARC (automatic ref-counting). | 1610 # On Mac and iOS, this enables support for ARC (automatic ref-counting). |
| 1616 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. | 1611 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. |
| 1617 config("enable_arc") { | 1612 config("enable_arc") { |
| 1618 common_flags = [ "-fobjc-arc" ] | 1613 common_flags = [ "-fobjc-arc" ] |
| 1619 cflags_objc = common_flags | 1614 cflags_objc = common_flags |
| 1620 cflags_objcc = common_flags | 1615 cflags_objcc = common_flags |
| 1621 } | 1616 } |
| 1622 } | 1617 } |
| OLD | NEW |