libmm-common: include Enums and Flags type information

The code to handle the Enums and Flags type information is automatically built
with `glib-mkenums' and the new templates kept under `build-aux'.

Note: We currently skip the type information of `MMModemBand'. GFlagsValue
can hold only 32-bit types, and we're working with a 64-bit flag here.
See: https://bugzilla.gnome.org/show_bug.cgi?id=663054
This commit is contained in:
Aleksander Morgado
2011-11-22 10:54:20 +01:00
parent ade484826c
commit 0e9ed6e5fe
4 changed files with 80 additions and 1 deletions

View File

@@ -1,4 +1,6 @@
EXTRA_DIST = \ EXTRA_DIST = \
header-generator.xsl \ header-generator.xsl \
header-generator-new.xsl header-generator-new.xsl \
mm-enums-types.h.template \
mm-enums-types.c.template

View File

@@ -0,0 +1,40 @@
/*** BEGIN file-header ***/
#include "ModemManager-enums.h"
#include "mm-enums-types.h"
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
GType
@enum_name@_get_type (void)
{
static volatile gsize g_define_type_id__volatile = 0;
if (g_once_init_enter (&g_define_type_id__volatile))
{
static const G@Type@Value values[] = {
/*** END value-header ***/
/*** BEGIN value-production ***/
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
/*** END value-production ***/
/*** BEGIN value-tail ***/
{ 0, NULL, NULL }
};
GType g_define_type_id =
g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
}
return g_define_type_id__volatile;
}
/*** END value-tail ***/
/*** BEGIN file-tail ***/
/*** END file-tail ***/

View File

@@ -0,0 +1,24 @@
/*** BEGIN file-header ***/
#ifndef __MM_ENUMS_TYPES_H__
#define __MM_ENUMS_TYPES_H__
#include <glib-object.h>
G_BEGIN_DECLS
/*** END file-header ***/
/*** BEGIN file-production ***/
/* enumerations from "@filename@" */
/*** END file-production ***/
/*** BEGIN value-header ***/
GType @enum_name@_get_type (void) G_GNUC_CONST;
#define @ENUMPREFIX@TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
/*** END value-header ***/
/*** BEGIN file-tail ***/
G_END_DECLS
#endif /* __MM_ENUMS_TYPES_H__ */
/*** END file-tail ***/

View File

@@ -2,6 +2,7 @@
noinst_LTLIBRARIES = libmm-common.la noinst_LTLIBRARIES = libmm-common.la
GENERATED_H = \ GENERATED_H = \
mm-enums-types.h \
mm-gdbus-manager.h \ mm-gdbus-manager.h \
mm-gdbus-sim.h \ mm-gdbus-sim.h \
mm-gdbus-sms.h \ mm-gdbus-sms.h \
@@ -9,6 +10,7 @@ GENERATED_H = \
mm-gdbus-modem.h mm-gdbus-modem.h
GENERATED_C = \ GENERATED_C = \
mm-enums-types.c \
mm-gdbus-manager.c \ mm-gdbus-manager.c \
mm-gdbus-sim.c \ mm-gdbus-sim.c \
mm-gdbus-sms.c \ mm-gdbus-sms.c \
@@ -30,6 +32,17 @@ GENERATED_DOC = \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.3gpp.Ussd.xml \ mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.3gpp.Ussd.xml \
mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Simple.xml
# Enum types
mm-enums-types.h: $(top_srcdir)/include/ModemManager-enums.h $(top_srcdir)/build-aux/mm-enums-types.h.template
$(AM_V_GEN) glib-mkenums \
--template $(top_srcdir)/build-aux/mm-enums-types.h.template \
$(top_srcdir)/include/ModemManager-enums.h > $@
mm-enums-types.c: $(top_srcdir)/include/ModemManager-enums.h $(top_srcdir)/build-aux/mm-enums-types.c.template mm-enums-types.h
$(AM_V_GEN) glib-mkenums \
--template $(top_srcdir)/build-aux/mm-enums-types.c.template \
$(top_srcdir)/include/ModemManager-enums.h > $@
# Manager interface # Manager interface
mm_gdbus_manager_generated = \ mm_gdbus_manager_generated = \
mm-gdbus-manager.h \ mm-gdbus-manager.h \