[gtk+] build: Add various compiler warnings and errors



commit 20b2e479f8256184eda0e0d44c1599b27104627a
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Sat Oct 15 21:39:31 2016 +0100

    build: Add various compiler warnings and errors
    
    Just like GLib, GTK+ would benefit from getting warnings and errors from
    the compilers.
    
    We check various, common warnings, especially for a future use of C99;
    additionally, we promote some warnings to errors, in order to ensure
    that simple mistakes are caught during the development phase, before
    they are submitted to the code repository.

 configure.ac    |   31 +++++++++++++++++++++++++++++++
 gdk/Makefile.am |    2 +-
 gtk/Makefile.am |    1 +
 3 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 35038a3..3ce9c31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1862,6 +1862,37 @@ _______EOF
 gdk_windowing='$GDK_WINDOWING'
 ])
 
+dnl Compiler flags; macro originates from systemd
+dnl See https://bugzilla.gnome.org/show_bug.cgi?id=608953
+AC_ARG_ENABLE(compile-warnings,
+              [AS_HELP_STRING([--disable-compile-warnings], [Do not use builtin compiler warnings])],
+              [],
+              [enable_compile_warnings=yes])
+AS_IF([test "x$enable_compile_warnings" = xyes], [
+  AX_APPEND_COMPILE_FLAGS([ dnl
+    -Wall dnl
+    -Wundef dnl
+    -Wnested-externs dnl
+    -Wpointer-arith dnl
+    -Wstrict-prototypes dnl
+    -Wcast-align dnl
+    -Wuninitialized dnl
+    -Wmissing-include-dirs dnl
+    -Wshadow dnl
+    -Wformat=2 dnl
+    -Wformat-non-literal dnl
+    -Wformat-security dnl
+    -Wimplicit-function-declaration dnl
+    -Werror=redundant-decls dnl
+    -Werror=write-strings dnl
+    -Werror=missing-declarations dnl
+    -Werror=missing-prototypes dnl
+    -Werror=empty-body dnl
+    -Werror=init-self dnl
+  ], [GTK_WARN_CFLAGS])
+])
+AC_SUBST(GTK_WARN_CFLAGS)
+
 dnl
 dnl Check for -Bsymbolic-functions linker flag used to avoid
 dnl intra-library PLT jumps, if available.
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index e1b6d81..77b7319 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -207,7 +207,7 @@ common_sources =            \
        gdkresources.c
 
 libgdk_4_la_SOURCES = $(common_sources)
-libgdk_4_la_CFLAGS = $(AM_CFLAGS) $(GDK_HIDDEN_VISIBILITY_CFLAGS)
+libgdk_4_la_CFLAGS = $(AM_CFLAGS) $(GTK_WARN_CFLAGS) $(GDK_HIDDEN_VISIBILITY_CFLAGS)
 libgdk_4_la_LIBADD = $(GDK_DEP_LIBS) $(SHM_LIBS)
 libgdk_4_la_LDFLAGS = $(LDADD)
 
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 71b0b75..3b3ace5 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -29,6 +29,7 @@ AM_CPPFLAGS =                                         \
        -I$(top_srcdir)/gdk                             \
        $(GMODULE_CFLAGS)                               \
        $(GTK_DEBUG_FLAGS)                              \
+       $(GTK_WARN_CFLAGS)                              \
        $(GDK_HIDDEN_VISIBILITY_CFLAGS)                 \
        $(GTK_DEP_CFLAGS)                               \
        $(INCLUDED_IMMODULE_DEFINE)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]