[Spice-devel] [PATCH 04/10] Generate GTypes for spice-server enums

Victor Toso lists at victortoso.com
Thu Sep 1 08:47:44 UTC 2016


Hi,

On Wed, Aug 31, 2016 at 11:54:40AM -0500, Jonathon Jongsma wrote:
> ---
>  server/Makefile.am | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/server/Makefile.am b/server/Makefile.am
> index 968829a..771b33f 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 at Type@Value _ at enum_name@_values[] = {" \
> +			--vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
> +			--vtail "  { 0, NULL, NULL }\n};\n\n" \
> +			--vtail "GType\n at 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_ at type@_register_static (\"@EnumName@\", _ at 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_ at ENUMSHORT@ @enum_name at _get_type()\n" \
> +			--eprod "GType @enum_name at _get_type (void);\n" \
> +		$^ >  $@
> +

I think make clean should clean $(spice_built_sources) and we should add
them in .gitignore too.

Reviewed-by: Victor Toso <victortoso at redhat.com>

>  EXTRA_DIST =					\
>  	spice-bitmap-utils.tmpl.c			\
>  	cache-item.tmpl.c			\
> -- 
> 2.7.4
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list