Enable maximum warnings.

A bunch of compile fixes.
This commit is contained in:
Marco Pesenti Gritti 2008-08-12 01:53:28 +02:00
parent b4aeb6038d
commit 9a827ead86
8 changed files with 150 additions and 57 deletions

View File

@ -10,6 +10,8 @@ AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip])
AC_DISABLE_STATIC AC_DISABLE_STATIC
AC_PROG_LIBTOOL AC_PROG_LIBTOOL
GNOME_COMPILE_WARNINGS(maximum)
AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal])
AM_PATH_PYTHON AM_PATH_PYTHON

141
m4/gnome-compiler-flags.m4 Normal file
View File

@ -0,0 +1,141 @@
dnl GNOME_COMPILE_WARNINGS
dnl Turn on many useful compiler warnings
dnl For now, only works on GCC
AC_DEFUN([GNOME_COMPILE_WARNINGS],[
dnl ******************************
dnl More compiler warnings
dnl ******************************
AC_ARG_ENABLE(compile-warnings,
AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
[Turn on compiler warnings]),,
[enable_compile_warnings="m4_default([$1],[yes])"])
warnCFLAGS=
if test "x$GCC" != xyes; then
enable_compile_warnings=no
fi
warning_flags=
realsave_CFLAGS="$CFLAGS"
case "$enable_compile_warnings" in
no)
warning_flags=
;;
minimum)
warning_flags="-Wall"
;;
yes)
warning_flags="-Wall -Wmissing-prototypes"
;;
maximum|error)
warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
CFLAGS="$warning_flags $CFLAGS"
for option in -Wno-sign-compare; do
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option])
AC_TRY_COMPILE([], [],
has_option=yes,
has_option=no,)
CFLAGS="$SAVE_CFLAGS"
AC_MSG_RESULT($has_option)
if test $has_option = yes; then
warning_flags="$warning_flags $option"
fi
unset has_option
unset SAVE_CFLAGS
done
unset option
if test "$enable_compile_warnings" = "error" ; then
warning_flags="$warning_flags -Werror"
fi
;;
*)
AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
;;
esac
CFLAGS="$realsave_CFLAGS"
AC_MSG_CHECKING(what warning flags to pass to the C compiler)
AC_MSG_RESULT($warning_flags)
AC_ARG_ENABLE(iso-c,
AC_HELP_STRING([--enable-iso-c],
[Try to warn if code is not ISO C ]),,
[enable_iso_c=no])
AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
complCFLAGS=
if test "x$enable_iso_c" != "xno"; then
if test "x$GCC" = "xyes"; then
case " $CFLAGS " in
*[\ \ ]-ansi[\ \ ]*) ;;
*) complCFLAGS="$complCFLAGS -ansi" ;;
esac
case " $CFLAGS " in
*[\ \ ]-pedantic[\ \ ]*) ;;
*) complCFLAGS="$complCFLAGS -pedantic" ;;
esac
fi
fi
AC_MSG_RESULT($complCFLAGS)
WARN_CFLAGS="$warning_flags $complCFLAGS"
AC_SUBST(WARN_CFLAGS)
])
dnl For C++, do basically the same thing.
AC_DEFUN([GNOME_CXX_WARNINGS],[
AC_ARG_ENABLE(cxx-warnings,
AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@]
[Turn on compiler warnings.]),,
[enable_cxx_warnings="m4_default([$1],[minimum])"])
AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
warnCXXFLAGS=
if test "x$GXX" != xyes; then
enable_cxx_warnings=no
fi
if test "x$enable_cxx_warnings" != "xno"; then
if test "x$GXX" = "xyes"; then
case " $CXXFLAGS " in
*[\ \ ]-Wall[\ \ ]*) ;;
*) warnCXXFLAGS="-Wall -Wno-unused" ;;
esac
## -W is not all that useful. And it cannot be controlled
## with individual -Wno-xxx flags, unlike -Wall
if test "x$enable_cxx_warnings" = "xyes"; then
warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual"
fi
fi
fi
AC_MSG_RESULT($warnCXXFLAGS)
AC_ARG_ENABLE(iso-cxx,
AC_HELP_STRING([--enable-iso-cxx],
[Try to warn if code is not ISO C++ ]),,
[enable_iso_cxx=no])
AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
complCXXFLAGS=
if test "x$enable_iso_cxx" != "xno"; then
if test "x$GXX" = "xyes"; then
case " $CXXFLAGS " in
*[\ \ ]-ansi[\ \ ]*) ;;
*) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
esac
case " $CXXFLAGS " in
*[\ \ ]-pedantic[\ \ ]*) ;;
*) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
esac
fi
fi
AC_MSG_RESULT($complCXXFLAGS)
WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
AC_SUBST(WARN_CXXFLAGS)
])

View File

@ -14,6 +14,7 @@ pkgpyexecdir = $(pythondir)/sugar
pkgpyexec_LTLIBRARIES = _sugarext.la pkgpyexec_LTLIBRARIES = _sugarext.la
_sugarext_la_CFLAGS = \ _sugarext_la_CFLAGS = \
$(WARN_CFLAGS) \
$(EXT_CFLAGS) \ $(EXT_CFLAGS) \
$(PYTHON_INCLUDES) $(PYTHON_INCLUDES)

View File

@ -10,8 +10,8 @@ headers
#include "sugar-preview.h" #include "sugar-preview.h"
#include "sexy-icon-entry.h" #include "sexy-icon-entry.h"
#include "gsm-session.h" #include "gsm-session.h"
#include "gsm-xsmp.h"
#define EGG_SM_CLIENT_BACKEND_XSMP
#include "eggsmclient.h" #include "eggsmclient.h"
#include "eggsmclient-private.h" #include "eggsmclient-private.h"

View File

@ -25,6 +25,8 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define EGG_SM_CLIENT_BACKEND_XSMP
GKeyFile *egg_sm_client_save_state (EggSMClient *client); GKeyFile *egg_sm_client_save_state (EggSMClient *client);
void egg_sm_client_quit_requested (EggSMClient *client); void egg_sm_client_quit_requested (EggSMClient *client);
void egg_sm_client_quit_cancelled (EggSMClient *client); void egg_sm_client_quit_cancelled (EggSMClient *client);

View File

@ -150,53 +150,6 @@ end_phase (GsmSession *session)
start_phase (session); start_phase (session);
} }
static void
app_condition_changed (GsmApp *app, gboolean condition, gpointer data)
{
GsmSession *session;
GsmClient *client = NULL;
GSList *cl = NULL;
g_return_if_fail (data != NULL);
session = (GsmSession *) data;
/* Check for an existing session client for this app */
for (cl = session->clients; cl; cl = cl->next)
{
GsmClient *c = GSM_CLIENT (cl->data);
if (!strcmp (app->client_id, gsm_client_get_client_id (c)))
client = c;
}
if (condition)
{
GError *error = NULL;
if (app->pid <= 0 && client == NULL)
gsm_app_launch (app, &error);
if (error != NULL)
{
g_warning ("Not able to launch autostart app from its condition: %s",
error->message);
g_error_free (error);
}
}
else
{
/* Kill client in case condition if false and make sure it won't
* be automatically restarted by adding the client to
* condition_clients */
session->condition_clients =
g_slist_prepend (session->condition_clients, client);
gsm_client_die (client);
app->pid = -1;
}
}
static void static void
app_registered (GsmApp *app, gpointer data) app_registered (GsmApp *app, gpointer data)
{ {
@ -241,10 +194,6 @@ phase_timeout (gpointer data)
static void static void
start_phase (GsmSession *session) start_phase (GsmSession *session)
{ {
GsmApp *app;
GSList *a;
GError *err = NULL;
g_debug ("starting phase %d\n", session->phase); g_debug ("starting phase %d\n", session->phase);
g_slist_free (session->pending_apps); g_slist_free (session->pending_apps);
@ -359,8 +308,6 @@ client_saved_state (GsmClient *client, gpointer data)
void void
gsm_session_initiate_shutdown (GsmSession *session) gsm_session_initiate_shutdown (GsmSession *session)
{ {
gboolean logout_prompt;
if (session->phase == GSM_SESSION_PHASE_SHUTDOWN) if (session->phase == GSM_SESSION_PHASE_SHUTDOWN)
{ {
/* Already shutting down, nothing more to do */ /* Already shutting down, nothing more to do */

View File

@ -50,6 +50,7 @@ void sugar_menu_set_active (SugarMenu *menu,
gboolean active); gboolean active);
void sugar_menu_embed (SugarMenu *menu, void sugar_menu_embed (SugarMenu *menu,
GtkContainer *parent); GtkContainer *parent);
void sugar_menu_unembed (SugarMenu *menu);
G_END_DECLS G_END_DECLS

View File

@ -19,6 +19,7 @@
#include <gdk/gdkx.h> #include <gdk/gdkx.h>
#include <gtk/gtkwindow.h> #include <gtk/gtkwindow.h>
#include <X11/extensions/XShm.h>
#include "sugar-preview.h" #include "sugar-preview.h"
@ -37,8 +38,6 @@ sugar_preview_set_size(SugarPreview *preview, int width, int height)
GdkPixbuf * GdkPixbuf *
sugar_preview_get_pixbuf(SugarPreview *preview) sugar_preview_get_pixbuf(SugarPreview *preview)
{ {
GdkPixbuf *pixbuf;
if (preview->pixbuf != NULL) { if (preview->pixbuf != NULL) {
return preview->pixbuf; return preview->pixbuf;
} }
@ -92,7 +91,7 @@ sugar_preview_take_screenshot(SugarPreview *preview, GdkDrawable *drawable)
XShmGetImage(GDK_SCREEN_XDISPLAY(screen), XShmGetImage(GDK_SCREEN_XDISPLAY(screen),
GDK_DRAWABLE_XID(drawable), GDK_DRAWABLE_XID(drawable),
gdk_x11_image_get_ximage(preview->image), gdk_x11_image_get_ximage(preview->image),
0, 0, AllPlanes, ZPixmap); 0, 0, AllPlanes);
} }
static void static void