diff options
author | Iñigo Martínez <inigomartinez@gmail.com> | 2018-02-13 15:33:23 +0100 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2018-09-26 09:28:38 -0400 |
commit | bf248cb354fdb2d459279443eff61cd5486c6045 (patch) | |
tree | 48d92a4c602f4e4b4ea605f6a0ef72e486ae5f3f /src | |
parent | e9e4aaee8f487608771545bd6d36c005a691984b (diff) |
build: Use template files for enums generation
The data contents for the enum related files are stored in the
build files.
This patch moves this information to template files to be used
along with glib-mkenums.
Diffstat (limited to 'src')
-rw-r--r-- | src/libaccountsservice/act-user-enum-types.c.template | 37 | ||||
-rw-r--r-- | src/libaccountsservice/act-user-enum-types.h.template | 23 | ||||
-rw-r--r-- | src/libaccountsservice/meson.build | 21 |
3 files changed, 64 insertions, 17 deletions
diff --git a/src/libaccountsservice/act-user-enum-types.c.template b/src/libaccountsservice/act-user-enum-types.c.template new file mode 100644 index 0000000..1d1b745 --- /dev/null +++ b/src/libaccountsservice/act-user-enum-types.c.template @@ -0,0 +1,37 @@ +/*** BEGIN file-header ***/ +#include "act-user-enum-types.h" +#include <glib-object.h> + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@basename@" */ +#include "@basename@" + +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static GType etype = 0; + if (etype == 0) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + etype = g_@type@_register_static ("@EnumName@", values); + } + return etype; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ +/*** END file-tail ***/ diff --git a/src/libaccountsservice/act-user-enum-types.h.template b/src/libaccountsservice/act-user-enum-types.h.template new file mode 100644 index 0000000..110a9ea --- /dev/null +++ b/src/libaccountsservice/act-user-enum-types.h.template @@ -0,0 +1,23 @@ +/*** BEGIN file-header ***/ +#ifndef __ACT_USER_ENUM_TYPES_H__ +#define __ACT_USER_ENUM_TYPES_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@basename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define ACT_USER_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __ACT_USER_ENUM_TYPES_H__ */ +/*** END file-tail ***/ diff --git a/src/libaccountsservice/meson.build b/src/libaccountsservice/meson.build index d4cd781..0266635 100644 --- a/src/libaccountsservice/meson.build +++ b/src/libaccountsservice/meson.build @@ -17,26 +17,13 @@ sources = files( 'act-user-manager.c', ) -enum_sources = [] enum_types = 'act-user-enum-types' -enum_sources += gnome.mkenums( - enum_types + '.c', +enum_sources = gnome.mkenums( + enum_types, sources: headers, - fhead: '#include "act-user.h"\n#include "act-user-manager.h"\n#include "act-user-enum-types.h"\n#include <glib-object.h>\n\n', - fprod: '\n/* enumerations from "@filename@" */', - vhead: 'GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {', - vprod: ' { @VALUENAME@, "@VALUENAME@", "@valuenick@" },', - vtail: ' { 0, NULL, NULL }\n };\n etype = g_@type@_register_static ("@EnumName@", values);\n }\n return etype;\n}\n', -) - -enum_sources += gnome.mkenums( - enum_types + '.h', - sources: headers, - fhead: '#ifndef __ACT_USER_ENUM_TYPES_H__\n#define __ACT_USER_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n', - fprod: '/* enumerations from "@filename@" */\n', - vhead: 'GType @enum_name@_get_type (void);\n#define ACT_USER_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n', - ftail: 'G_END_DECLS\n\n#endif /* __ACT_USER_ENUM_TYPES_H__ */', + c_template: enum_types + '.c.template', + h_template: enum_types + '.h.template', install_header: true, install_dir: join_paths(act_pkgincludedir, subdir), ) |