From ef7279a7549dd63349749797863426e06fdd9c0f Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 23 Jun 2008 18:39:27 +0200 Subject: [PATCH] Update Makefile.am to generate GTypes for enums in the DBus manager, and use them to set the error domain in the MMDBusManager. --- src/Makefile.am | 62 +++++++++++++++++++++++++++++++++++++++++++++------ src/mm-dbus-manager.c | 3 ++- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 6223f38..f975227 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,10 +23,15 @@ LDADD = \ lib_LTLIBRARIES = \ libmmanager.la +mm_dbus_manager_headers = \ + mm-dbus-manager.h + mm_dbus_manager_SOURCES = \ mm-dbus-manager-main.c \ - mm-dbus-manager.h \ - mm-dbus-manager.c + mm-dbus-manager.c \ + mm-dbus-manager-type-builtins.c \ + mm-dbus-manager-type-builtins.h \ + $(mm_dbus_manager_headers) libmmanager_includedir=$(includedir)/libmmanager @@ -75,20 +80,24 @@ libmmanager_la_SOURCES = \ mm-attribute-base-manager.c BUILT_SOURCES = \ - mm-type-builtins.c \ + mm-type-builtins.c \ mm-type-builtins.h \ mm-dbus-manager-client-bindings.h \ - mm-dbus-manager-server-bindings.h + mm-dbus-manager-server-bindings.h \ + mm-dbus-manager-type-builtins.c \ + mm-dbus-manager-type-builtins.h stamp_files = \ stamp-mm-type-builtins.c \ stamp-mm-type-builtins.h \ stamp-mm-dbus-manager-client-bindings.h \ - stamp-mm-dbus-manager-server-bindings.h + stamp-mm-dbus-manager-server-bindings.h \ + stamp-mm-dbus-manager-type-builtins.c \ + stamp-mm-dbus-manager-type-builtins.h mm-type-builtins.c: stamp-mm-type-builtins.c Makefile @true -stamp-mm-type-builtins.c: Makefile $(libmanager_headers) +stamp-mm-type-builtins.c: Makefile $(libmmanager_headers) $(GLIB_MKENUMS) \ --fhead "#include \n\n" \ --fhead "#include \"mm-type-builtins.h\"\n\n" \ @@ -109,7 +118,7 @@ stamp-mm-type-builtins.c: Makefile $(libmanager_headers) mm-type-builtins.h: stamp-mm-type-builtins.h Makefile @true -stamp-mm-type-builtins.h: Makefile $(libmanager_headers) +stamp-mm-type-builtins.h: Makefile $(libmmanager_headers) $(GLIB_MKENUMS) \ --fhead "#ifndef __MM_TYPE_BUILTINS_H__\n" \ --fhead "#define __MM_TYPE_BUILTINS_H__\n\n" \ @@ -124,6 +133,45 @@ stamp-mm-type-builtins.h: Makefile $(libmanager_headers) && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ && rm -f xgen-$(@F) \ && echo timestamp > $(@F) + +mm-dbus-manager-type-builtins.c: stamp-mm-dbus-manager-type-builtins.c Makefile + @true +stamp-mm-dbus-manager-type-builtins.c: Makefile $(mm_dbus_manager_headers) + $(GLIB_MKENUMS) \ + --fhead "#include \n\n" \ + --fhead "#include \"mm-type-builtins.h\"\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --fprod "\n#include \"@filename@\"" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n" \ + --vhead " static GType type = 0;\n\n" \ + --vhead " if (G_UNLIKELY (type == 0))\n {\n" \ + --vhead " static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n }\n\n" \ + --vtail " return type;\n}\n\n" \ + $(mm_dbus_manager_headers) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) + +mm-dbus-manager-type-builtins.h: stamp-mm-dbus-manager-type-builtins.h Makefile + @true +stamp-mm-dbus-manager-type-builtins.h: Makefile $(mm_dbus_manager_headers) + $(GLIB_MKENUMS) \ + --fhead "#ifndef __MM_TYPE_BUILTINS_H__\n" \ + --fhead "#define __MM_TYPE_BUILTINS_H__\n\n" \ + --fhead "#include \n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* __MM_TYPE_BUILTINS_H__ */\n" \ + --fprod "\n/* --- @filename@ --- */" \ + --eprod "#define MM_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \ + --eprod "GType @enum_name@_get_type (void);\n" \ + $(mm_dbus_manager_headers) > xgen-$(@F) \ + && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \ + && rm -f xgen-$(@F) \ + && echo timestamp > $(@F) mm-dbus-manager-server-bindings.h: stamp-mm-dbus-manager-server-bindings.h @true diff --git a/src/mm-dbus-manager.c b/src/mm-dbus-manager.c index a4657b8..74336a3 100644 --- a/src/mm-dbus-manager.c +++ b/src/mm-dbus-manager.c @@ -24,6 +24,7 @@ #include #include #include "mm-dbus-manager.h" +#include "mm-dbus-manager-type-builtins.h" gboolean mm_dbus_manager_register_app (MMDBusManager *manager, char *path, GError **error); gboolean mm_dbus_manager_get_registered_apps (MMDBusManager *manager, char ***app_paths, @@ -64,7 +65,7 @@ mm_dbus_manager_class_init (MMDBusManagerClass *klass) dbus_g_object_type_install_info (MM_TYPE_DBUS_MANAGER, &dbus_glib_mm_dbus_manager_object_info); - //dbus_g_error_domain_register (MM_DBUS_ERROR_QUARK, NULL, MM_DBUS_MANAGER_TYPE_ERROR); + dbus_g_error_domain_register (MM_DBUS_ERROR_QUARK, NULL, MM_TYPE_MD_BUS_ERROR_ENUM); g_type_class_add_private (klass, sizeof (MMDBusManagerDetails)); } -- 2.11.4.GIT