Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / build / config / clang / BUILD.gn
blob6dff4863a5e93603a89a1fce1972bb8f1e70d828
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
3 # found in the LICENSE file.
5 import("clang.gni")
7 config("find_bad_constructs") {
8   if (clang_use_chrome_plugins) {
9     cflags = []
11     # On Windows, the plugin is built directly into clang, so there's
12     # no need to load it dynamically.
14     if (is_mac || is_ios) {
15       cflags += [
16         "-Xclang",
17         "-load",
18         "-Xclang",
19         rebase_path(
20             "//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib",
21             root_build_dir),
22       ]
23     } else if (is_linux) {
24       cflags += [
25         "-Xclang",
26         "-load",
27         "-Xclang",
28         rebase_path(
29             "//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so",
30             root_build_dir),
31       ]
32     }
34     # https://crbug.com/441916
35     if (is_android || is_linux || is_mac) {
36       cflags += [
37         "-Xclang",
38         "-plugin-arg-find-bad-constructs",
39         "-Xclang",
40         "check-templates",
41       ]
42     }
44     cflags += [
45       "-Xclang",
46       "-add-plugin",
47       "-Xclang",
48       "find-bad-constructs",
49     ]
50   }
53 # Enables some extra Clang-specific warnings. Some third-party code won't
54 # compile with these so may want to remove this config.
55 config("extra_warnings") {
56   cflags = [
57     "-Wheader-hygiene",
59     # Warns when a const char[] is converted to bool.
60     "-Wstring-conversion",
61   ]