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/compiler/compiler.gni") | 5 import("//build/config/compiler/compiler.gni") |
6 import("//build/config/sanitizers/sanitizers.gni") | 6 import("//build/config/sanitizers/sanitizers.gni") |
7 import("//build/config/win/visual_studio_version.gni") | 7 import("//build/config/win/visual_studio_version.gni") |
8 | 8 |
9 assert(is_win) | 9 assert(is_win) |
10 | 10 |
(...skipping 15 matching lines...) Expand all Loading... |
26 # can also produce a table of the image's safe exception handlers. This | 26 # can also produce a table of the image's safe exception handlers. This |
27 # table specifies for the operating system which exception handlers are | 27 # table specifies for the operating system which exception handlers are |
28 # valid for the image. Note that /SAFESEH isn't accepted on the command | 28 # valid for the image. Note that /SAFESEH isn't accepted on the command |
29 # line, only /safeseh. This is only accepted by ml.exe, not ml64.exe. | 29 # line, only /safeseh. This is only accepted by ml.exe, not ml64.exe. |
30 "/safeseh", | 30 "/safeseh", |
31 ] | 31 ] |
32 } | 32 } |
33 | 33 |
34 cflags = [ | 34 cflags = [ |
35 "/Gy", # Enable function-level linking. | 35 "/Gy", # Enable function-level linking. |
| 36 "/GS", # Enable buffer security checking. |
36 "/FS", # Preserve previous PDB behavior. | 37 "/FS", # Preserve previous PDB behavior. |
37 "/bigobj", # Some of our files are bigger than the regular limits. | 38 "/bigobj", # Some of our files are bigger than the regular limits. |
38 | 39 |
39 # Tell the compiler to crash on failures. This is undocumented | 40 # Tell the compiler to crash on failures. This is undocumented |
40 # and unsupported but very handy. | 41 # and unsupported but very handy. |
41 "/d2FastFail", | 42 "/d2FastFail", |
42 ] | 43 ] |
43 if (!is_clang) { | |
44 # TODO(thakis): Enable this with clang too, https://crbug.com/598767 | |
45 cflags += [ "/GS" ] # Enable buffer security checking. | |
46 } | |
47 | 44 |
48 # Force C/C++ mode for the given GN detected file type. This is necessary | 45 # Force C/C++ mode for the given GN detected file type. This is necessary |
49 # for precompiled headers where the same source file is compiled in both | 46 # for precompiled headers where the same source file is compiled in both |
50 # modes. | 47 # modes. |
51 cflags_c = [ "/TC" ] | 48 cflags_c = [ "/TC" ] |
52 cflags_cc = [ "/TP" ] | 49 cflags_cc = [ "/TP" ] |
53 | 50 |
54 if (visual_studio_version == "2015") { | 51 if (visual_studio_version == "2015") { |
55 cflags += [ | 52 cflags += [ |
56 # Work around crbug.com/526851, bug in VS 2015 RTM compiler. | 53 # Work around crbug.com/526851, bug in VS 2015 RTM compiler. |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 | 378 |
382 # Internal stuff -------------------------------------------------------------- | 379 # Internal stuff -------------------------------------------------------------- |
383 | 380 |
384 # Config used by the MIDL template to disable warnings. | 381 # Config used by the MIDL template to disable warnings. |
385 config("midl_warnings") { | 382 config("midl_warnings") { |
386 if (is_clang) { | 383 if (is_clang) { |
387 # MIDL generates code like "#endif !_MIDL_USE_GUIDDEF_". | 384 # MIDL generates code like "#endif !_MIDL_USE_GUIDDEF_". |
388 cflags = [ "-Wno-extra-tokens" ] | 385 cflags = [ "-Wno-extra-tokens" ] |
389 } | 386 } |
390 } | 387 } |
OLD | NEW |