diff --git a/meson.build b/meson.build index 56b7bfea70..61c2d6aa95 100644 --- a/meson.build +++ b/meson.build @@ -8,6 +8,7 @@ project('systemd', 'c', 'prefix=/usr', 'sysconfdir=/etc', 'localstatedir=/var', + 'warning_level=2', ], meson_version : '>= 0.46', ) @@ -302,7 +303,8 @@ install_tests = get_option('install-tests') if add_languages('cpp', required : fuzzer_build) # Used only for tests - cxx_cmd = ' '.join(meson.get_compiler('cpp').cmd_array()) + cxx = meson.get_compiler('cpp') + cxx_cmd = ' '.join(cxx.cmd_array()) else cxx_cmd = '' endif @@ -322,8 +324,25 @@ elif want_fuzzbuzz fuzzing_engine = meson.get_compiler('cpp').find_library(get_option('fuzzbuzz-engine'), dirs: get_option('fuzzbuzz-engine-dir')) endif +# Those generate many false positives, and we do not want to change the code to +# avoid them. +basic_disabled_warnings = [ + '-Wno-unused-parameter', + '-Wno-missing-field-initializers', + '-Wno-unused-result', + '-Wno-format-signedness', +] +if get_option('b_ndebug') == 'true' + # With asserts disabled with get a bunch of warnings about variables which + # are used only in the asserts. This is not useful at all, so let's just silence + # those warnings. + basic_disabled_warnings += [ + '-Wno-unused-variable', + '-Wno-unused-but-set-variable', + ] +endif + possible_cc_flags = [ - '-Wextra', '-Werror=undef', '-Wlogical-op', '-Wmissing-include-dirs', @@ -353,10 +372,6 @@ possible_cc_flags = [ '-Wnested-externs', # negative arguments are correctly detected starting with meson 0.46. - '-Wno-unused-parameter', - '-Wno-missing-field-initializers', - '-Wno-unused-result', - '-Wno-format-signedness', '-Wno-error=#warnings', # clang '-Wno-string-plus-int', # clang @@ -401,16 +416,7 @@ if get_option('buildtype') != 'debug' possible_link_flags += '-Wl,--gc-sections' endif -if get_option('b_ndebug') == 'true' - # With asserts disabled with get a bunch of warnings about variables which - # are used only in the asserts. This is not useful at all, so let's just silence - # those warnings. - possible_cc_flags += [ - '-Wno-unused-variable', - '-Wno-unused-but-set-variable', - ] -endif - +add_project_arguments(cc.get_supported_arguments(basic_disabled_warnings), language : 'c') add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c') add_project_link_arguments(cc.get_supported_link_arguments(possible_link_flags), language : 'c') @@ -427,6 +433,10 @@ if cc.compiles(''' add_project_arguments('-Werror=shadow', language : 'c') endif +if cxx_cmd != '' + add_project_arguments(cxx.get_supported_arguments(basic_disabled_warnings), language : 'cpp') +endif + cpp = ' '.join(cc.cmd_array()) + ' -E' has_wstringop_truncation = cc.has_argument('-Wstringop-truncation') diff --git a/src/test/meson.build b/src/test/meson.build index 6179607a43..1057082565 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -11,12 +11,11 @@ test_hashmap_ordered_c = custom_target( test_include_dir = include_directories('.') -path = run_command('sh', ['-c', 'echo "$PATH"']).stdout() +path = run_command('sh', ['-c', 'echo "$PATH"']).stdout().strip() test_env = environment() test_env.set('SYSTEMD_KBD_MODEL_MAP', kbd_model_map) test_env.set('SYSTEMD_LANGUAGE_FALLBACK_MAP', language_fallback_map) -test_env.set('PATH', path) -test_env.prepend('PATH', meson.build_root()) +test_env.set('PATH', '@0@:@1@'.format(meson.build_root(), path)) ############################################################