summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2015-03-23 15:17:10 -0500
committerJonathon Jongsma <jjongsma@redhat.com>2016-09-01 17:18:14 -0500
commit3e807db9478d733c2daf1ea4ff242b05365d1b0c (patch)
tree919b0a478ea679b2a816c1b4b69572e548347d55
parent47e8dcec68e58a037f8d6f0edd3b24d0a9b1e689 (diff)
Generate GTypes for spice-server enums
-rw-r--r--.gitignore2
-rw-r--r--server/Makefile.am31
2 files changed, 33 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 90fb62a6..2df7c3fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,5 @@ INSTALL
.tarball-version
docs/manual/manual.chunked/
docs/manual/manual.html
+spice-server-enums.h
+spice-server-enums.c
diff --git a/server/Makefile.am b/server/Makefile.am
index e48df4ea..09939f3d 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -68,6 +68,8 @@ libspice_serverinclude_HEADERS = \
spice.h \
$(NULL)
+spice_built_sources = spice-server-enums.h spice-server-enums.c
+
libserver_la_SOURCES = \
$(libspice_serverinclude_HEADERS) \
agent-msg-filter.c \
@@ -155,6 +157,7 @@ libserver_la_SOURCES = \
dcc-private.h \
image-encoders.c \
image-encoders.h \
+ $(spice_built_sources) \
$(NULL)
if HAVE_LZ4
@@ -186,6 +189,34 @@ endif
libspice_server_la_LIBADD = libserver.la
libspice_server_la_SOURCES =
+spice-server-enums.c: spice-server.h
+ $(AM_V_GEN)glib-mkenums --fhead "#include \"config.h\"\n\n" \
+ --fhead "#include <glib-object.h>\n" \
+ --fhead "#include \"spice-server-enums.h\"\n\n" \
+ --fprod "\n#include \"spice-server.h\"\n" \
+ --vhead "static const G@Type@Value _@enum_name@_values[] = {" \
+ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+ --vtail " { 0, NULL, NULL }\n};\n\n" \
+ --vtail "GType\n@enum_name@_get_type (void)\n{\n" \
+ --vtail " static GType type = 0;\n" \
+ --vtail " static volatile gsize type_volatile = 0;\n\n" \
+ --vtail " if (g_once_init_enter(&type_volatile)) {\n" \
+ --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n" \
+ --vtail " g_once_init_leave(&type_volatile, type);\n" \
+ --vtail " }\n\n" \
+ --vtail " return type;\n}\n\n" \
+ $^ > $@
+
+spice-server-enums.h: spice-server.h
+ $(AM_V_GEN)glib-mkenums --fhead "#ifndef SPICE_SERVER_ENUMS_H\n" \
+ --fhead "#define SPICE_SERVER_ENUMS_H\n\n" \
+ --fhead "G_BEGIN_DECLS\n\n" \
+ --ftail "G_END_DECLS\n\n" \
+ --ftail "#endif /* SPICE_SERVER_ENUMS_H */\n" \
+ --eprod "#define SPICE_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \
+ --eprod "GType @enum_name@_get_type (void);\n" \
+ $^ > $@
+
EXTRA_DIST = \
spice-bitmap-utils.tmpl.c \
cache-item.tmpl.c \