aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-07-17 22:52:43 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-07-18 01:49:09 +0800
commitf22e38ffad3d6360920e278ac35c3a00102738ff (patch)
tree6e66ce1159f3d2b41ee46dc273d85d0639f5edfa /shell
parentcc29868877436d404610039b719c5d781925d97e (diff)
downloadgsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar.gz
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar.bz2
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar.lz
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar.xz
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.tar.zst
gsoc2013-evolution-f22e38ffad3d6360920e278ac35c3a00102738ff.zip
Use template files to generate GEnumClass types.
Diffstat (limited to 'shell')
-rw-r--r--shell/Makefile.am14
-rw-r--r--shell/e-shell-enumtypes.c.template38
-rw-r--r--shell/e-shell-enumtypes.h.template27
3 files changed, 74 insertions, 5 deletions
diff --git a/shell/Makefile.am b/shell/Makefile.am
index 0398379c41..b460d08d43 100644
--- a/shell/Makefile.am
+++ b/shell/Makefile.am
@@ -10,11 +10,13 @@ privsolib_LTLIBRARIES = libeshell.la
eshellincludedir = $(privincludedir)/shell
-include $(top_srcdir)/glib-gen.mak
-glib_enum_headers=e-shell.h
-glib_enum_output=e-shell-enumtypes
-glib_enum_define=E_SHELL
-glib_enum_prefix=e_shell
+ENUM_TYPES = e-shell.h
+
+e-shell-enumtypes.h: e-shell-enumtypes.h.template $(ENUM_TYPES)
+ $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template e-shell-enumtypes.h.template $(ENUM_TYPES)) > $@
+
+e-shell-enumtypes.c: e-shell-enumtypes.c.template $(ENUM_TYPES)
+ $(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template e-shell-enumtypes.c.template $(ENUM_TYPES)) > $@
ENUM_GENERATED = e-shell-enumtypes.h e-shell-enumtypes.c
@@ -190,6 +192,8 @@ errordir = $(privdatadir)/errors
EXTRA_DIST = \
evo-version.h.in \
+ e-shell-enumtypes.h.template \
+ e-shell-enumtypes.c.template \
shell.error.xml \
evolution-icon.rc \
evolution.ico \
diff --git a/shell/e-shell-enumtypes.c.template b/shell/e-shell-enumtypes.c.template
new file mode 100644
index 0000000000..4d30900611
--- /dev/null
+++ b/shell/e-shell-enumtypes.c.template
@@ -0,0 +1,38 @@
+/*** BEGIN file-header ***/
+#include "e-shell-enumtypes.h"
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* enumerations from "@filename@" */
+#include "@filename@"
+
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType
+@enum_name@_get_type (void)
+{
+ static GType the_type = 0;
+
+ if (the_type == 0) {
+ static const G@Type@Value values[] = {
+/*** END value-header ***/
+
+/*** BEGIN value-production ***/
+ { @VALUENAME@,
+ "@VALUENAME@",
+ "@valuenick@" },
+/*** END value-production ***/
+
+/*** BEGIN value-tail ***/
+ { 0, NULL, NULL }
+ };
+ the_type = g_@type@_register_static (
+ g_intern_static_string ("@EnumName@"),
+ values);
+ }
+ return the_type;
+}
+
+/*** END value-tail ***/
diff --git a/shell/e-shell-enumtypes.h.template b/shell/e-shell-enumtypes.h.template
new file mode 100644
index 0000000000..76ff677384
--- /dev/null
+++ b/shell/e-shell-enumtypes.h.template
@@ -0,0 +1,27 @@
+/*** BEGIN file-header ***/
+#ifndef E_SHELL_ENUMTYPES_H
+#define E_SHELL_ENUMTYPES_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* Enumerations from "@filename@" */
+
+/*** END file-production ***/
+
+/*** BEGIN enumeration-production ***/
+#define E_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
+GType @enum_name@_get_type (void) G_GNUC_CONST;
+
+/*** END enumeration-production ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+
+#endif /* E_SHELL_ENUMTYPES_H */
+/*** END file-tail ***/
+