diff options
author | Iñigo Martínez <inigomartinez@gmail.com> | 2018-02-01 22:25:54 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2018-02-05 17:42:49 +0100 |
commit | 06c62bdefe3be5d366f539bdfc3a0aaf3bdcad67 (patch) | |
tree | f09ac2592db0c21e90ceb683d2a925da9a089970 | |
parent | f180fc7cd655d29d6fdae7e71e2cb6bc8672e823 (diff) | |
download | gnome-settings-daemon-06c62bdefe3be5d366f539bdfc3a0aaf3bdcad67.tar.gz |
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.
https://bugzilla.gnome.org/show_bug.cgi?id=793087
-rw-r--r-- | plugins/common/gsd-common-enums.c.in | 40 | ||||
-rw-r--r-- | plugins/common/gsd-common-enums.h.in | 27 | ||||
-rw-r--r-- | plugins/common/meson.build | 18 | ||||
-rw-r--r-- | plugins/power/gsd-power-enums.c.in | 40 | ||||
-rw-r--r-- | plugins/power/gsd-power-enums.h.in | 27 | ||||
-rw-r--r-- | plugins/power/meson.build | 18 |
6 files changed, 140 insertions, 30 deletions
diff --git a/plugins/common/gsd-common-enums.c.in b/plugins/common/gsd-common-enums.c.in new file mode 100644 index 00000000..fbc3f182 --- /dev/null +++ b/plugins/common/gsd-common-enums.c.in @@ -0,0 +1,40 @@ +/*** BEGIN file-header ***/ +#include "gsd-common-enums.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 the_type = 0; + + if (the_type == 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 } + }; + the_type = g_@type@_register_static ( + g_intern_static_string ("@EnumName@"), + values); + } + return the_type; +} + +/*** END value-tail ***/ diff --git a/plugins/common/gsd-common-enums.h.in b/plugins/common/gsd-common-enums.h.in new file mode 100644 index 00000000..d3ebcc05 --- /dev/null +++ b/plugins/common/gsd-common-enums.h.in @@ -0,0 +1,27 @@ +/*** BEGIN file-header ***/ +#ifndef GSD_COMMON_ENUMS_H +#define GSD_COMMON_ENUMS_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* Enumerations from "@basename@" */ + +/*** END file-production ***/ + +/*** BEGIN enumeration-production ***/ +#define GSD_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) +GType @enum_name@_get_type (void) G_GNUC_CONST; + +/*** END enumeration-production ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* !GSD_COMMON_ENUMS_H */ +/*** END file-tail ***/ + diff --git a/plugins/common/meson.build b/plugins/common/meson.build index 2a0f4b28..ec54cc1a 100644 --- a/plugins/common/meson.build +++ b/plugins/common/meson.build @@ -14,22 +14,10 @@ enums_header = 'gsd-device-manager.h' enums = 'gsd-common-enums' sources += gnome.mkenums( - enums + '.h', + enums, sources: enums_header, - fhead: '#ifndef GSD_COMMON_ENUMS_H\n#define GSD_COMMON_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n', - fprod: '/* enumerations from "@filename@" */\n', - vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GSD_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n', - ftail: 'G_END_DECLS\n\n#endif /* !GSD_COMMON_ENUMS_H */' -) - -sources += gnome.mkenums( - enums + '.c', - sources: enums_header, - fhead: '#include "gsd-device-manager.h"\n#include "gsd-common-enums.h"\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' + c_template: enums + '.c.in', + h_template: enums + '.h.in' ) resource_data = files('gtk.css') diff --git a/plugins/power/gsd-power-enums.c.in b/plugins/power/gsd-power-enums.c.in new file mode 100644 index 00000000..1b994bbf --- /dev/null +++ b/plugins/power/gsd-power-enums.c.in @@ -0,0 +1,40 @@ +/*** BEGIN file-header ***/ +#include "gsd-power-enums.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 the_type = 0; + + if (the_type == 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 } + }; + the_type = g_@type@_register_static ( + g_intern_static_string ("@EnumName@"), + values); + } + return the_type; +} + +/*** END value-tail ***/ diff --git a/plugins/power/gsd-power-enums.h.in b/plugins/power/gsd-power-enums.h.in new file mode 100644 index 00000000..53e37c04 --- /dev/null +++ b/plugins/power/gsd-power-enums.h.in @@ -0,0 +1,27 @@ +/*** BEGIN file-header ***/ +#ifndef GSD_POWER_ENUMS_H +#define GSD_POWER_ENUMS_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* Enumerations from "@basename@" */ + +/*** END file-production ***/ + +/*** BEGIN enumeration-production ***/ +#define GSD_POWER_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) +GType @enum_name@_get_type (void) G_GNUC_CONST; + +/*** END enumeration-production ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* !GSD_POWER_ENUMS_H */ +/*** END file-tail ***/ + diff --git a/plugins/power/meson.build b/plugins/power/meson.build index 652ce40c..c299bc1d 100644 --- a/plugins/power/meson.build +++ b/plugins/power/meson.build @@ -53,22 +53,10 @@ enums_headers = files( enums = 'gsd-power-enums' sources += gnome.mkenums( - enums + '.h', + enums, sources: enums_headers, - fhead: '#ifndef GSD_POWER_ENUMS_H\n#define GSD_POWER_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n', - fprod: '/* enumerations from "@filename@" */\n', - vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GSD_POWER_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n', - ftail: 'G_END_DECLS\n\n#endif /* !GSD_POWER_ENUMS_H */' -) - -sources += gnome.mkenums( - enums + '.c', - sources: enums_headers, - fhead: '#include "gsm-inhibitor-flag.h"\n#include "gsm-presence-flag.h"\n#include "gsd-power-enums.h"', - 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' + c_template: enums + '.c.in', + h_template: enums + '.h.in' ) gsd_power_enums_update = executable( |