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:
@@ -1,4 +1,6 @@
|
||||
|
||||
EXTRA_DIST = \
|
||||
header-generator.xsl \
|
||||
header-generator-new.xsl
|
||||
header-generator-new.xsl \
|
||||
mm-enums-types.h.template \
|
||||
mm-enums-types.c.template
|
||||
|
40
build-aux/mm-enums-types.c.template
Normal file
40
build-aux/mm-enums-types.c.template
Normal 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 ***/
|
24
build-aux/mm-enums-types.h.template
Normal file
24
build-aux/mm-enums-types.h.template
Normal 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 ***/
|
@@ -2,6 +2,7 @@
|
||||
noinst_LTLIBRARIES = libmm-common.la
|
||||
|
||||
GENERATED_H = \
|
||||
mm-enums-types.h \
|
||||
mm-gdbus-manager.h \
|
||||
mm-gdbus-sim.h \
|
||||
mm-gdbus-sms.h \
|
||||
@@ -9,6 +10,7 @@ GENERATED_H = \
|
||||
mm-gdbus-modem.h
|
||||
|
||||
GENERATED_C = \
|
||||
mm-enums-types.c \
|
||||
mm-gdbus-manager.c \
|
||||
mm-gdbus-sim.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.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
|
||||
mm_gdbus_manager_generated = \
|
||||
mm-gdbus-manager.h \
|
||||
|
Reference in New Issue
Block a user