meson: add default compiler warning flags and enable -Werror on CI

This enables various compiler warnings project wide and disables the triggered
ones for each library/executable. This should give us roughly the same behaviour
as with autotools.

Tested with gcc8 and clang7.
This commit is contained in:
Christoph Reiter 2018-12-15 12:18:04 +01:00
parent cb1d599495
commit 13ba457c22
2 changed files with 40 additions and 5 deletions

View File

@ -29,9 +29,20 @@ cmph_deps = [
cc.find_library('m', required: false), cc.find_library('m', required: false),
] ]
custom_c_args = cc.get_supported_arguments([
'-Wno-implicit-fallthrough',
'-Wno-old-style-definition',
'-Wno-strict-prototypes',
'-Wno-suggest-attribute=noreturn',
'-Wno-type-limits',
'-Wno-undef',
'-Wno-unused-parameter',
'-Wno-cast-align',
'-Wno-unused-function',
])
cmph = static_library('cmph', cmph = static_library('cmph',
sources: cmph_sources, sources: cmph_sources,
c_args: gi_hidden_visibility_cflags, c_args: gi_hidden_visibility_cflags + custom_c_args,
dependencies: cmph_deps, dependencies: cmph_deps,
) )
@ -40,11 +51,17 @@ cmph_dep = declare_dependency(
include_directories: include_directories('.'), include_directories: include_directories('.'),
) )
custom_c_args = cc.get_supported_arguments([
'-Wno-old-style-definition',
'-Wno-strict-prototypes',
'-Wno-type-limits',
])
cmph_test = executable('cmph-bdz-test', '../cmph-bdz-test.c', cmph_test = executable('cmph-bdz-test', '../cmph-bdz-test.c',
dependencies: [ dependencies: [
cmph_dep, cmph_dep,
glib_dep, glib_dep,
] ],
c_args: custom_c_args,
) )
test('cmph-bdz-test', cmph_test) test('cmph-bdz-test', cmph_test)

View File

@ -1,9 +1,14 @@
subdir('cmph') subdir('cmph')
custom_c_args = cc.get_supported_arguments([
'-Wno-strict-prototypes',
'-Wno-old-style-definition',
'-Wno-cast-align',
])
girepo_gthash_lib = static_library('girepository-gthash', girepo_gthash_lib = static_library('girepository-gthash',
sources: 'gthash.c', sources: 'gthash.c',
include_directories : configinc, include_directories : configinc,
c_args: gi_hidden_visibility_cflags, c_args: gi_hidden_visibility_cflags + custom_c_args,
dependencies: [ dependencies: [
cmph_dep, cmph_dep,
glib_dep, glib_dep,
@ -17,6 +22,11 @@ girepo_gthash_dep = declare_dependency(
include_directories: include_directories('.'), include_directories: include_directories('.'),
) )
custom_c_args = cc.get_supported_arguments([
'-Wno-unused-parameter',
'-Wno-duplicated-branches',
'-Wno-cast-align',
])
girepo_internals_lib = static_library('girepository-internals', girepo_internals_lib = static_library('girepository-internals',
sources: [ sources: [
'girmodule.c', 'girmodule.c',
@ -25,7 +35,7 @@ girepo_internals_lib = static_library('girepository-internals',
'girparser.c', 'girparser.c',
'girwriter.c', 'girwriter.c',
], ],
c_args: gi_hidden_visibility_cflags, c_args: gi_hidden_visibility_cflags + custom_c_args,
include_directories : configinc, include_directories : configinc,
dependencies: [girepo_gthash_dep, libffi_dep], dependencies: [girepo_gthash_dep, libffi_dep],
) )
@ -136,10 +146,18 @@ girepo_gir_sources = files(
install_headers(girepo_headers, subdir: 'gobject-introspection-1.0') install_headers(girepo_headers, subdir: 'gobject-introspection-1.0')
custom_c_args = cc.get_supported_arguments([
'-Wno-unused-parameter',
'-Wno-duplicated-branches',
'-Wno-type-limits',
'-Wno-cast-align',
'-Wno-missing-field-initializers',
])
girepo_lib = shared_library('girepository-1.0', girepo_lib = shared_library('girepository-1.0',
sources: girepo_sources, sources: girepo_sources,
include_directories : configinc, include_directories : configinc,
c_args: gi_hidden_visibility_cflags + ['-DG_IREPOSITORY_COMPILATION'], c_args: gi_hidden_visibility_cflags + ['-DG_IREPOSITORY_COMPILATION'] +
custom_c_args,
dependencies: [glib_dep, gobject_dep, gmodule_dep, dependencies: [glib_dep, gobject_dep, gmodule_dep,
gio_dep, girepo_internals_dep], gio_dep, girepo_internals_dep],
version: '1.0.0', version: '1.0.0',