Index: build/config/clang/BUILD.gn |
diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6dff4863a5e93603a89a1fce1972bb8f1e70d828 |
--- /dev/null |
+++ b/build/config/clang/BUILD.gn |
@@ -0,0 +1,62 @@ |
+# Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import("clang.gni") |
+ |
+config("find_bad_constructs") { |
+ if (clang_use_chrome_plugins) { |
+ cflags = [] |
+ |
+ # On Windows, the plugin is built directly into clang, so there's |
+ # no need to load it dynamically. |
+ |
+ if (is_mac || is_ios) { |
+ cflags += [ |
+ "-Xclang", |
+ "-load", |
+ "-Xclang", |
+ rebase_path( |
+ "//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib", |
+ root_build_dir), |
+ ] |
+ } else if (is_linux) { |
+ cflags += [ |
+ "-Xclang", |
+ "-load", |
+ "-Xclang", |
+ rebase_path( |
+ "//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so", |
+ root_build_dir), |
+ ] |
+ } |
+ |
+ # https://crbug.com/441916 |
+ if (is_android || is_linux || is_mac) { |
+ cflags += [ |
+ "-Xclang", |
+ "-plugin-arg-find-bad-constructs", |
+ "-Xclang", |
+ "check-templates", |
+ ] |
+ } |
+ |
+ cflags += [ |
+ "-Xclang", |
+ "-add-plugin", |
+ "-Xclang", |
+ "find-bad-constructs", |
+ ] |
+ } |
+} |
+ |
+# Enables some extra Clang-specific warnings. Some third-party code won't |
+# compile with these so may want to remove this config. |
+config("extra_warnings") { |
+ cflags = [ |
+ "-Wheader-hygiene", |
+ |
+ # Warns when a const char[] is converted to bool. |
+ "-Wstring-conversion", |
+ ] |
+} |