summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2017-09-27 14:31:39 -0400
committerAdam Jackson <ajax@redhat.com>2017-10-04 11:19:15 -0400
commitdb465bae533f85e7f900deb96efecc831c9d550b (patch)
treefc3383b64cb15b2079c6f1f5d734f22be5b97dc1
parent40c90ead044aa3fab79280d7a5ca5ad8e390029e (diff)
meson: Port default warning flags from xorg-macros
Well, almost all of them. No -Wdeclaration-after-statement because that's legal in C99, and in the limited ways we use it, more readable. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
-rw-r--r--meson.build45
1 files changed, 43 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index 811d3d4ce..d71cfed5a 100644
--- a/meson.build
+++ b/meson.build
@@ -14,8 +14,49 @@ add_global_arguments('-fvisibility=hidden', language : 'c')
add_global_link_arguments('-fvisibility=hidden', language : 'c')
-# Quiet some EXA warnings.
-add_global_arguments('-Wno-discarded-qualifiers', language : 'c')
+if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
+ test_wflags = [
+ '-Wall',
+ '-Wpointer-arith',
+ '-Wmissing-declarations',
+ '-Wformat=2',
+ '-Wstrict-prototypes',
+ '-Wmissing-prototypes',
+ '-Wnested-externs',
+ '-Wbad-function-cast',
+ '-Wold-style-definition',
+ '-Wunused',
+ '-Wuninitialized',
+ '-Wshadow',
+ '-Wmissing-noreturn',
+ '-Wmissing-format-attribute',
+ '-Wredundant-decls',
+ '-Werror=implicit',
+ '-Werror=nonnull',
+ '-Werror=init-self',
+ '-Werror=main',
+ '-Werror=missing-braces',
+ '-Werror=sequence-point',
+ '-Werror=return-type',
+ '-Werror=trigraphs',
+ '-Werror=array-bounds',
+ '-Werror=write-strings',
+ '-Werror=address',
+ '-Werror=int-to-pointer-cast',
+ '-Werror=pointer-to-int-cast',
+ ]
+else
+ test_wflags = []
+endif
+
+common_wflags = []
+foreach wflag: test_wflags
+ if cc.has_argument(wflag)
+ common_wflags += [ wflag ]
+ endif
+endforeach
+
+add_global_arguments(common_wflags, language : 'c')
xproto_dep = dependency('xproto', version: '>= 7.0.31')
randrproto_dep = dependency('randrproto', version: '>= 1.5.0')