diff options
author | Mike Klein <mtklein@chromium.org> | 2016-09-26 09:14:59 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-09-26 14:20:02 +0000 |
commit | 787339e94278296639b36b980e1e6d5726ca9130 (patch) | |
tree | 3e7141f183403f27efdc8f2a887f0080e8a3183b /gn | |
parent | b58a2b4919aa67ab5bab1d497f26671d704654b4 (diff) |
GN: detect is_clang, use it to switch Clang to warning blacklist.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2599
Change-Id: I09c3487adfeb26a6fb07e1939cb927c5d7de3107
Reviewed-on: https://skia-review.googlesource.com/2599
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'gn')
-rw-r--r-- | gn/BUILD.gn | 74 | ||||
-rwxr-xr-x | gn/is_clang.py | 17 |
2 files changed, 91 insertions, 0 deletions
diff --git a/gn/BUILD.gn b/gn/BUILD.gn index 427ab2eec6..551d429639 100644 --- a/gn/BUILD.gn +++ b/gn/BUILD.gn @@ -24,6 +24,13 @@ declare_args() { cc_wrapper = "" } +is_clang = exec_script("is_clang.py", + [ + cc, + cxx, + ], + "value") + config("default") { asmflags = [] cflags = [] @@ -70,6 +77,73 @@ config("default") { "-Wnon-virtual-dtor", ] + if (is_clang) { + cflags += [ + "-Weverything", + "-Wno-unknown-warning-option", # Let older Clangs ignore newer Clangs' warnings. + ] + + # High priority to fix! + cflags += [ + "-Wno-comma", + "-Wno-conditional-uninitialized", + "-Wno-covered-switch-default", + "-Wno-deprecated", + "-Wno-format-nonliteral", + "-Wno-shadow", + "-Wno-shift-sign-overflow", + "-Wno-undefined-func-template", + "-Wno-undefined-reinterpret-cast", + ] + + cflags += [ + "-Wno-cast-align", + "-Wno-class-varargs", + "-Wno-conversion", + "-Wno-disabled-macro-expansion", + "-Wno-documentation", + "-Wno-documentation-unknown-command", + "-Wno-double-promotion", + "-Wno-exit-time-destructors", # TODO: OK outside libskia + "-Wno-extra-semi", + "-Wno-float-conversion", + "-Wno-float-equal", + "-Wno-global-constructors", # TODO: OK outside libskia + "-Wno-gnu-anonymous-struct", + "-Wno-gnu-zero-variadic-macro-arguments", + "-Wno-missing-prototypes", + "-Wno-missing-variable-declarations", + "-Wno-nested-anon-types", + "-Wno-newline-eof", + "-Wno-pedantic", + "-Wno-reserved-id-macro", + "-Wno-sign-conversion", + "-Wno-switch-enum", + "-Wno-undef", + "-Wno-unreachable-code", + "-Wno-unreachable-code-break", + "-Wno-unreachable-code-return", + "-Wno-unused-macros", + "-Wno-unused-member-function", + ] + cflags_cc += [ + "-Wno-abstract-vbase-init", + "-Wno-range-loop-analysis", + "-Wno-weak-vtables", + ] + + # We are unlikely to want to fix these. + cflags += [ + "-Wno-implicit-fallthrough", + "-Wno-missing-noreturn", + "-Wno-old-style-cast", + "-Wno-padded", + ] + cflags_cc += [ + "-Wno-c++98-compat", + "-Wno-c++98-compat-pedantic", + ] + } } if (current_cpu == "arm") { diff --git a/gn/is_clang.py b/gn/is_clang.py new file mode 100755 index 0000000000..99173a004c --- /dev/null +++ b/gn/is_clang.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# +# Copyright 2016 Google Inc. +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import subprocess +import sys +cc,cxx = sys.argv[1:3] + +if ('clang' in subprocess.check_output([cc, '--version']) and + 'clang' in subprocess.check_output([cxx, '--version'])): + print 'true' +else: + print 'false' + |