summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-11-10 12:16:41 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-11-12 09:23:31 +0100
commite9f4f5667d18470da0e1b045d36ecebbacca0d96 (patch)
treea13f7db15213b356e206ad0f2032db4c42d13354 /meson.build
parent827ca90986d755b008e0002f0cd80edfc7271659 (diff)
downloadsystemd-e9f4f5667d18470da0e1b045d36ecebbacca0d96.tar.gz
meson: apply our -Wno-* options also in c++ calls
We compile some c++ code for tests. We would simply use the default options for those. When the previous commit raised the default warning level, we started getting warnings from c++ code. Let's add the most important options to the c++ command, so that we get a compilation without any warnings again. I don't think it makes sense to add *all* the options that we add for c to the c++ flags, because testing them takes quite a while, and the c++ compilations are for small amounts of code, mostly to check that the headers have compatible syntax.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build40
1 files changed, 25 insertions, 15 deletions
diff --git a/meson.build b/meson.build
index b7017f4f40..61c2d6aa95 100644
--- a/meson.build
+++ b/meson.build
@@ -303,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
@@ -323,6 +324,24 @@ 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 = [
'-Werror=undef',
'-Wlogical-op',
@@ -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')