summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIñigo Martínez <inigomartinez@gmail.com>2018-02-01 22:25:54 +0100
committerBastien Nocera <hadess@hadess.net>2018-02-05 17:42:49 +0100
commit06c62bdefe3be5d366f539bdfc3a0aaf3bdcad67 (patch)
treef09ac2592db0c21e90ceb683d2a925da9a089970
parentf180fc7cd655d29d6fdae7e71e2cb6bc8672e823 (diff)
downloadgnome-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.in40
-rw-r--r--plugins/common/gsd-common-enums.h.in27
-rw-r--r--plugins/common/meson.build18
-rw-r--r--plugins/power/gsd-power-enums.c.in40
-rw-r--r--plugins/power/gsd-power-enums.h.in27
-rw-r--r--plugins/power/meson.build18
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(