summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/clang
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/build/config/clang')
-rw-r--r--third_party/libwebrtc/build/config/clang/BUILD.gn59
-rw-r--r--third_party/libwebrtc/build/config/clang/clang.gni18
2 files changed, 77 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/config/clang/BUILD.gn b/third_party/libwebrtc/build/config/clang/BUILD.gn
new file mode 100644
index 0000000000..9512c66246
--- /dev/null
+++ b/third_party/libwebrtc/build/config/clang/BUILD.gn
@@ -0,0 +1,59 @@
+# 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 = []
+
+ # The plugin is built directly into clang, so there's no need to load it
+ # dynamically.
+ cflags += [
+ "-Xclang",
+ "-add-plugin",
+ "-Xclang",
+ "find-bad-constructs",
+ "-Xclang",
+ "-plugin-arg-find-bad-constructs",
+ "-Xclang",
+ "raw-ptr-template-as-trivial-member",
+ ]
+
+ if (is_linux || is_chromeos || is_android || is_fuchsia) {
+ cflags += [
+ "-Xclang",
+ "-plugin-arg-find-bad-constructs",
+ "-Xclang",
+ "check-ipc",
+ ]
+ }
+ }
+}
+
+# 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",
+
+ "-Wtautological-overlap-compare",
+ ]
+}
+
+group("llvm-symbolizer_data") {
+ if (is_win) {
+ data = [ "$clang_base_path/bin/llvm-symbolizer.exe" ]
+ } else {
+ data = [ "$clang_base_path/bin/llvm-symbolizer" ]
+
+ if (!is_apple) {
+ # llvm-symbolizer uses libstdc++ from the clang package.
+ data += [ "$clang_base_path/lib/libstdc++.so.6" ]
+ }
+ }
+}
diff --git a/third_party/libwebrtc/build/config/clang/clang.gni b/third_party/libwebrtc/build/config/clang/clang.gni
new file mode 100644
index 0000000000..588864586d
--- /dev/null
+++ b/third_party/libwebrtc/build/config/clang/clang.gni
@@ -0,0 +1,18 @@
+# Copyright 2014 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("//build/toolchain/toolchain.gni")
+
+default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
+
+declare_args() {
+ # Indicates if the build should use the Chrome-specific plugins for enforcing
+ # coding guidelines, etc. Only used when compiling with Chrome's Clang, not
+ # Chrome OS's.
+ clang_use_chrome_plugins =
+ is_clang && !is_nacl && !use_xcode_clang &&
+ default_toolchain != "//build/toolchain/cros:target"
+
+ clang_base_path = default_clang_base_path
+}