compiler-warnings: code cleanup: Extract common warnings into variables
authorColin Walters <walters@verbum.org>
Mon, 12 Nov 2012 20:00:06 +0000 (15:00 -0500)
committerColin Walters <walters@verbum.org>
Mon, 12 Nov 2012 20:22:55 +0000 (15:22 -0500)
Will make future refactoring clearer, and also we have comments now.

https://bugzilla.gnome.org/show_bug.cgi?id=688192

macros2/gnome-compiler-flags.m4

index 992ad5c..c4cc1c6 100644 (file)
@@ -19,6 +19,27 @@ AC_DEFUN([GNOME_COMPILE_WARNINGS],[
     warning_flags=
     realsave_CFLAGS="$CFLAGS"
 
+    dnl These are warning flags that aren't marked as fatal.  Can be
+    dnl overridden on a per-project basis with -Wno-foo.
+    base_warn_flags=" \
+        -Wall \
+       -Wstrict-prototypes \
+    "
+
+    dnl These compiler flags typically indicate very broken or suspicious
+    dnl code.  Some of them such as implicit-function-declaration are
+    dnl just not default because gcc compiles a lot of legacy code.
+    dnl We choose to make this set into explicit errors.
+    base_error_flags=" \
+       -Werror=missing-prototypes \
+       -Werror=implicit-function-declaration \
+       -Werror=pointer-arith \
+       -Werror=init-self \
+       -Werror=format-security \
+       -Werror=format=2 \
+       -Werror=missing-include-dirs \
+    "
+
     case "$enable_compile_warnings" in
     no)
        warning_flags=
@@ -27,29 +48,11 @@ AC_DEFUN([GNOME_COMPILE_WARNINGS],[
        warning_flags="-Wall"
        ;;
     yes)
-       warning_flags="\
-       -Wall \
-       -Wstrict-prototypes \
-       -Werror=missing-prototypes \
-       -Werror=implicit-function-declaration \
-       -Werror=pointer-arith \
-       -Werror=init-self \
-       -Werror=format-security \
-       -Werror=format=2 \
-       -Werror=missing-include-dirs"
+       warning_flags="$base_warn_flags $base_error_flags"
        ;;
     maximum|error)
-       warning_flags="\
-       -Wall \
-       -Wstrict-prototypes \
+       warning_flags="$base_warn_flags $base_error_flags \
        -Wdeclaration-after-statement \
-       -Werror=missing-prototypes \
-       -Werror=implicit-function-declaration \
-       -Werror=pointer-arith \
-       -Werror=init-self \
-       -Werror=format-security \
-       -Werror=format=2 \
-       -Werror=missing-include-dirs \
        -Wnested-externs \
        -Wno-sign-compare"
        ;;