Skip to content

Commit

Permalink
libgdmgreeter: generate implementation
Browse files Browse the repository at this point in the history
GdmGreeterClient is the interface greeters use to communicate
with their respective slaves. It will eventually also be
useful as an interface for screensavers to do authentication.

The actual GdmGreeterClient code is a just a thin wrapper around
some libdbus calls. Something very similar can be automatically
generated using gdbus-codegen.

This commit:

    - updates the library to use the most up to date dbus
      interfaces provided by the daemon
    - replaces the hand rolled dbus code with generated code,
      but leaving the client interface to get at the generated
      objects.

Based on work by Giovanni Campagna <gcampagna@src.gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=676381
  • Loading branch information
halfline committed Jul 17, 2012
1 parent 982e196 commit 6ce1c7d
Show file tree
Hide file tree
Showing 6 changed files with 1,230 additions and 996 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ docs/gdm-oc.omf
docs/gdm-ru.omf
docs/gdm-sv.omf
docs/gdm-uk.omf
gui/libgdmgreeter/gdm-client-glue.h
gui/libgdmgreeter/gdm-client-glue.c
gui/libgdmgreeter/gdm-manager-glue.h
gui/libgdmgreeter/gdm-manager-glue.c
gui/simple-chooser/gdm-host-chooser
gui/simple-chooser/gdm-simple-chooser
gui/simple-greeter/gdm-simple-greeter
Expand Down
7 changes: 2 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,9 @@ PKG_CHECK_MODULES(CHECK,
have_check=no)
AM_CONDITIONAL([HAVE_CHECK],[test "x$CHECK_CFLAGS" != "x"])

LIBGDMGREETER_LIBS="$SIMPLE_GREETER_LIBS"
AC_SUBST(LIBGDMGREETER_LIBS)
LIBGDMGREETER_CFLAGS="$SIMPLE_GREETER_CFLAGS"
AC_SUBST(LIBGDMGREETER_CFLAGS)
PKG_CHECK_MODULES(LIBGDMGREETER, glib-2.0 gio-2.0 gio-unix-2.0);
GOBJECT_INTROSPECTION_CHECK([0.9.12])
LIBGDMGREETER_GIR_INCLUDES="GLib-2.0 GObject-2.0 DBusGLib-1.0"
LIBGDMGREETER_GIR_INCLUDES="GLib-2.0 GObject-2.0 Gio-2.0"
AC_SUBST(LIBGDMGREETER_GIR_INCLUDES)

dnl ---------------------------------------------------------------------------
Expand Down
57 changes: 47 additions & 10 deletions gui/libgdmgreeter/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,12 +1,41 @@
END_OF_LIST =

BUILT_SOURCES = $(END_OF_LIST)
CLEANFILES = $(END_OF_LIST)
BUILT_SOURCES = gdm-manager-glue.h gdm-client-glue.h
CLEANFILES = \
$(BUILT_SOURCES) \
gdm-manager-glue.c \
gdm-client-glue.c \
$(END_OF_LIST)

gdm-manager-glue.c gdm-manager-glue.h : $(top_srcdir)/daemon/gdm-manager.xml Makefile.am
$(AM_V_GEN)gdbus-codegen \
--c-namespace Gdm \
--interface-prefix=org.gnome.DisplayManager \
--generate-c-code=gdm-manager-glue \
--annotate "org.gnome.DisplayManager.Manager" \
"org.gtk.GDBus.C.Name" Manager \
$(top_srcdir)/daemon/gdm-manager.xml

gdm-client-glue.c gdm-client-glue.h : $(top_srcdir)/daemon/gdm-session.xml Makefile.am
$(AM_V_GEN)gdbus-codegen \
--c-namespace Gdm \
--interface-prefix=org.gnome.DisplayManager \
--generate-c-code=gdm-client-glue \
--annotate "org.gnome.DisplayManager.UserVerifier" \
"org.gtk.GDBus.C.Name" UserVerifier \
--annotate "org.gnome.DisplayManager.Greeter" \
"org.gtk.GDBus.C.Name" Greeter \
--annotate "org.gnome.DisplayManager.RemoteGreeter" \
"org.gtk.GDBus.C.Name" RemoteGreeter \
--annotate "org.gnome.DisplayManager.Chooser" \
"org.gtk.GDBus.C.Name" Chooser \
$(top_srcdir)/daemon/gdm-session.xml

AM_CPPFLAGS = \
-I. \
-I.. \
-DG_LOG_DOMAIN=\"GdmGreeter\" \
-I$(srcdir) \
-DG_LOG_DOMAIN=\"Gdm\" \
-DDMCONFDIR=\""$(dmconfdir)"\" \
-DDATADIR=\""$(datadir)"\" \
$(END_OF_LIST)
Expand All @@ -15,10 +44,10 @@ lib_LTLIBRARIES = \
libgdmgreeter.la \
$(END_OF_LIST)

libgdmgreeterdir = $(includedir)/gdm/greeter
libgdmgreeterdir = $(includedir)/gdm
libgdmgreeter_HEADERS = \
gdm-greeter-client.h \
gdm-greeter-sessions.h \
gdm-greeter-client.h \
gdm-greeter-sessions.h \
$(END_OF_LIST)

libgdmgreeter_la_CFLAGS = \
Expand All @@ -40,6 +69,13 @@ libgdmgreeter_la_SOURCES = \
gdm-greeter-sessions.c \
$(END_OF_LIST)

nodist_libgdmgreeter_la_SOURCES = \
gdm-client-glue.c \
gdm-client-glue.h \
gdm-manager-glue.c \
gdm-manager-glue.h \
$(END_OF_LIST)

pkgconfigdir = $(libdir)/pkgconfig
dist_pkgconfig_DATA = gdmgreeter.pc

Expand All @@ -52,24 +88,25 @@ typelibsdir = $(libdir)/girepository-1.0
typelibs_DATA = $(gir_DATA:.gir=.typelib)
INTROSPECTION_GIRS = $(gir_DATA)

GdmGreeter-1.0.gir: \
GdmGreeter-1.0.gir: \
$(INTROSPECTION_SCANNER) \
libgdmgreeter.la \
Makefile \
$(END_OF_LIST)

GdmGreeter_1_0_gir_SCANNERFLAGS = \
GdmGreeter_1_0_gir_SCANNERFLAGS = \
--warn-all \
--namespace=GdmGreeter \
--identifier-prefix GdmGreeter \
--identifier-prefix Gdm \
$(AM_CPPFLAGS) \
$(libgdmgreeter_la_CFLAGS) \
$(END_OF_LIST)

GdmGreeter_1_0_gir_INCLUDES = $(LIBGDMGREETER_GIR_INCLUDES)
GdmGreeter_1_0_gir_LIBS = libgdmgreeter.la
GdmGreeter_1_0_gir_FILES = \
$(filter-out %-private.h, $(libgdmgreeter_la_SOURCES)) \
$(BUILT_SOURCES) \
$(filter-out %-private.h, $(nodist_libgdmgreeter_la_SOURCES)) \
$(END_OF_LIST)

CLEANFILES += $(gir_DATA) $(typelibs_DATA)
Expand Down
Loading

0 comments on commit 6ce1c7d

Please sign in to comment.