--- configure.ac | 5 +++++ src/Makefile.am | 39 +++++++++++++++++++++++++++++++++++++-- src/ovirt-enum-types.c.template | 39 +++++++++++++++++++++++++++++++++++++++ src/ovirt-enum-types.h.template | 24 ++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 src/ovirt-enum-types.c.template create mode 100644 src/ovirt-enum-types.h.template diff --git a/configure.ac b/configure.ac index 59039cf..0c9557a 100644 --- a/configure.ac +++ b/configure.ac @@ -75,6 +75,11 @@ IT_PROG_INTLTOOL([0.35.0]) PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0) + +# Setup GLIB_MKENUMS to use glib-mkenums even if GLib is uninstalled. +GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` +AC_SUBST(GLIB_MKENUMS) + PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED) AC_ARG_WITH([libvirt], diff --git a/src/Makefile.am b/src/Makefile.am index f76024c..356609c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -39,9 +39,34 @@ COMMON_SOURCES += \ endif if HAVE_OVIRT -COMMON_SOURCES += \ - ovirt-rest-call.h ovirt-rest-call.c \ +EXTRA_DIST += + ovirt-enum-types.h.template \ + ovirt-enum-types.c.template \ + $(NULL) + +BUILT_SOURCES = \ + ovirt-enum-types.h \ + ovirt-enum-types.c \ + $(NULL) + +CLEANFILES = $(BUILT_SOURCES) + +OVIRT_HEADER_FILES = \ + ovirt-rest-call.h \ + $(NULL) + +COMMON_SOURCES += \ + ovirt-rest-call.c \ + $(OVIRT_HEADER_FILES) \ $(NULL) + +ovirt-enum-types.h: $(OVIRT_HEADER_FILES) ovirt-enum-types.h.template + $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/ovirt-enum-types.h.template $(OVIRT_HEADER_FILES:%=$(srcdir)/%) ) \ + > ovirt-enum-types.h + +ovirt-enum-types.c: $(OVIRT_HEADER_FILES) ovirt-enum-types.h ovirt-enum-types.c.template + $(AM_V_GEN) ( $(GLIB_MKENUMS) --template $(srcdir)/ovirt-enum-types.c.template $(OVIRT_HEADER_FILES:%=$(srcdir)/%) ) \ + > ovirt-enum-types.c endif if HAVE_SPICE_GTK @@ -82,6 +107,11 @@ virt_viewer_LDFLAGS += $(GTK_VNC_LIBS) virt_viewer_CFLAGS += $(GTK_VNC_CFLAGS) endif if HAVE_OVIRT +nodist_virt_viewer_SOURCES = \ + $(builddir)/ovirt-enum-types.h \ + $(builddir)/ovirt-enum-types.c \ + $(NULL) + virt_viewer_LDFLAGS += $(OVIRT_LIBS) virt_viewer_CFLAGS += $(OVIRT_CFLAGS) endif @@ -118,6 +148,11 @@ remote_viewer_LDFLAGS += $(GTK_VNC_LIBS) remote_viewer_CFLAGS += $(GTK_VNC_CFLAGS) endif if HAVE_OVIRT +nodist_remote_viewer_SOURCES = \ + $(builddir)/ovirt-enum-types.h \ + $(builddir)/ovirt-enum-types.c \ + $(NULL) + remote_viewer_LDFLAGS += $(OVIRT_LIBS) remote_viewer_CFLAGS += $(OVIRT_CFLAGS) endif diff --git a/src/ovirt-enum-types.c.template b/src/ovirt-enum-types.c.template new file mode 100644 index 0000000..7ab626b --- /dev/null +++ b/src/ovirt-enum-types.c.template @@ -0,0 +1,39 @@ +/*** BEGIN file-header ***/ +#include "ovirt-enum-types.h" +#include "ovirt-proxy.h" +#include "ovirt-rest-call.h" +#include "ovirt-vm-display.h" +#include "ovirt-vm.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 ***/ diff --git a/src/ovirt-enum-types.h.template b/src/ovirt-enum-types.h.template new file mode 100644 index 0000000..54147e1 --- /dev/null +++ b/src/ovirt-enum-types.h.template @@ -0,0 +1,24 @@ +/*** BEGIN file-header ***/ +#ifndef __OVIRT_ENUM_TYPES_H__ +#define __OVIRT_ENUM_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 /* __OVIRT_ENUM_TYPES_H__ */ +/*** END file-tail ***/ -- 1.7.10.2