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.
This commit is contained in:
Emmanuele Bassi 2016-10-15 21:39:31 +01:00
parent 6a9be60a16
commit 20b2e479f8
3 changed files with 33 additions and 1 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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)