[gnome-builder/wip/gtk4-port] plugins/meson-templates: import some compiler wisdom
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port] plugins/meson-templates: import some compiler wisdom
- Date: Wed, 8 Jun 2022 00:26:20 +0000 (UTC)
commit 60f16bcdef392b5f886cf9dc391f3259057d1b7a
Author: Christian Hergert <chergert redhat com>
Date: Tue Jun 7 17:26:09 2022 -0700
plugins/meson-templates: import some compiler wisdom
Seriously though, we need to tweak our compiler flags quit a bit to get
something that will help people catch bugs without being overly pedantic
and annoying. This at least shows the way.
Happy to take other ideas here, but this fixes a bunch of warnings that
would be shown for typical GLib/GTK stuff while also ramping up some
errors on things that should also matter.
src/plugins/meson-templates/resources/meson.build | 73 ++++++++++++++++++++++-
1 file changed, 72 insertions(+), 1 deletion(-)
---
diff --git a/src/plugins/meson-templates/resources/meson.build
b/src/plugins/meson-templates/resources/meson.build
index 0c74af043..b30a83a11 100644
--- a/src/plugins/meson-templates/resources/meson.build
+++ b/src/plugins/meson-templates/resources/meson.build
@@ -16,10 +16,12 @@ project('{{name}}',{{if language == "c"}} 'c',{{else if language == "c++"}} ['cp
{{if enable_i18n}}
i18n = import('i18n')
{{end}}
-
{{if enable_gnome}}
gnome = import('gnome')
{{end}}
+{{if language == "c"}}
+cc = meson.get_compiler('c')
+{{end}}
{{if language == "c"}}
config_h = configuration_data()
@@ -37,6 +39,75 @@ add_project_arguments([
], language: 'c')
{{end}}
+{{if language == "c"}}
+project_c_args = []
+test_c_args = [
+ '-Wcast-align',
+ '-Wdeclaration-after-statement',
+ '-Werror=address',
+ '-Werror=array-bounds',
+ '-Werror=empty-body',
+ '-Werror=implicit',
+ '-Werror=implicit-function-declaration',
+ '-Werror=incompatible-pointer-types',
+ '-Werror=init-self',
+ '-Werror=int-conversion',
+ '-Werror=int-to-pointer-cast',
+ '-Werror=main',
+ '-Werror=misleading-indentation',
+ '-Werror=missing-braces',
+ '-Werror=missing-include-dirs',
+ '-Werror=nonnull',
+ '-Werror=overflow',
+ '-Werror=parenthesis',
+ '-Werror=pointer-arith',
+ '-Werror=pointer-to-int-cast',
+ '-Werror=redundant-decls',
+ '-Werror=return-type',
+ '-Werror=sequence-point',
+ '-Werror=shadow',
+ '-Werror=strict-prototypes',
+ '-Werror=trigraphs',
+ '-Werror=undef',
+ '-Werror=write-strings',
+ '-Wformat-nonliteral',
+ '-Wignored-qualifiers',
+ '-Wimplicit-function-declaration',
+ '-Wlogical-op',
+ '-Wmissing-declarations',
+ '-Wmissing-format-attribute',
+ '-Wmissing-include-dirs',
+ '-Wmissing-noreturn',
+ '-Wnested-externs',
+ '-Wno-cast-function-type',
+ '-Wno-dangling-pointer',
+ '-Wno-missing-field-initializers',
+ '-Wno-sign-compare',
+ '-Wno-unused-parameter',
+ '-Wold-style-definition',
+ '-Wpointer-arith',
+ '-Wredundant-decls',
+ '-Wstrict-prototypes',
+ '-Wswitch-default',
+ '-Wswitch-enum',
+ '-Wundef',
+ '-Wuninitialized',
+ '-Wunused',
+ '-fno-strict-aliasing',
+ ['-Werror=format-security', '-Werror=format=2' ],
+]
+if get_option('buildtype') != 'plain'
+ test_c_args += '-fstack-protector-strong'
+endif
+
+foreach arg: test_c_args
+ if cc.has_multi_arguments(arg)
+ project_c_args += arg
+ endif
+endforeach
+
+add_project_arguments(project_c_args, language: 'c')
+{{end}}
{{if language == "rust"}}
cargo_sources = files(
'Cargo.toml',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]