[gnome-builder/wip/alexl/emacs-css-keys: 2/5] Generate enum types via glib-mkenums
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/alexl/emacs-css-keys: 2/5] Generate enum types via glib-mkenums
- Date: Wed, 18 Feb 2015 17:21:16 +0000 (UTC)
commit 7e92b98b67b62cb8885e92a8477b92d52998534b
Author: Alexander Larsson <alexl redhat com>
Date: Wed Feb 18 15:27:03 2015 +0100
Generate enum types via glib-mkenums
build/autotools/autoconf.d/50_dependencies.post-am | 6 +++
src/gnome-builder.mk | 15 +++++++-
src/util/gb-types.c.template | 38 ++++++++++++++++++++
src/util/gb-types.h.template | 24 ++++++++++++
4 files changed, 82 insertions(+), 1 deletions(-)
---
diff --git a/build/autotools/autoconf.d/50_dependencies.post-am
b/build/autotools/autoconf.d/50_dependencies.post-am
index b6c7bac..2222022 100644
--- a/build/autotools/autoconf.d/50_dependencies.post-am
+++ b/build/autotools/autoconf.d/50_dependencies.post-am
@@ -1,3 +1,9 @@
+AM_PATH_GLIB_2_0(2.42.0, :,
+ AC_MSG_ERROR([
+*** GLIB glib_required_version or better is required. The latest version of
+*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
+ gobject gmodule-no-export)
+
PKG_CHECK_MODULES(BUILDER, [gtk+-3.0 >= 3.15.6
gtksourceview-3.0 >= 3.15.3
libdevhelp-3.0 >= 3.14.0
diff --git a/src/gnome-builder.mk b/src/gnome-builder.mk
index c3c5e85..da9a579 100644
--- a/src/gnome-builder.mk
+++ b/src/gnome-builder.mk
@@ -1,6 +1,9 @@
bin_PROGRAMS += gnome-builder
noinst_LTLIBRARIES += libgnome-builder.la
+gnome_builder_type_headers = \
+ src/editor/gb-source-view-mode.h
+
libgnome_builder_la_SOURCES = \
$(gnome_builder_built_sources) \
src/animation/gb-animation.c \
@@ -279,7 +282,9 @@ gnome_builder_LDADD = libgnome-builder.la
# in how we build projects inside of Builder.
gnome_builder_built_sources = \
src/resources/gb-resources.c \
- src/resources/gb-resources.h
+ src/resources/gb-resources.h \
+ src/util/gb-types.c \
+ src/util/gb-types.h
resource_files = $(shell glib-compile-resources --sourcedir=$(top_srcdir)/src/resources
--generate-dependencies $(top_srcdir)/src/resources/gnome-builder.gresource.xml)
src/resources/gb-resources.c: src/resources/gnome-builder.gresource.xml $(resource_files)
@@ -287,12 +292,20 @@ src/resources/gb-resources.c: src/resources/gnome-builder.gresource.xml $(resour
src/resources/gb-resources.h: src/resources/gnome-builder.gresource.xml $(resource_files)
$(AM_V_GEN)glib-compile-resources --target=$@ --sourcedir=$(top_srcdir)/src/resources
--generate-header --c-name gb $(top_srcdir)/src/resources/gnome-builder.gresource.xml
+src/util/gb-types.h: $(gnome_builder_type_headers) src/util/gb-types.h.template
+ $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template src/util/gb-types.h.template
$(gnome_builder_type_headers) ) > src/util/gb-types.h
+src/util/gb-types.c: $(gnome_builder_type_headers) src/util/gb-types.c.template
+ $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template src/util/gb-types.c.template
$(gnome_builder_type_headers) ) > src/util/gb-types.c
+
nodist_gnome_builder_SOURCES = \
$(gnome_builder_built_sources) \
$(NULL)
BUILT_SOURCES += $(gnome_builder_built_sources)
+EXTRA_DIST += \
+ src/util/gb-types.c.template \
+ src/util/gb-types.h.template
EXTRA_DIST += $(resource_files)
EXTRA_DIST += src/resources/gnome-builder.gresource.xml
EXTRA_DIST += $(gnome_builder_built_sources)
diff --git a/src/util/gb-types.c.template b/src/util/gb-types.c.template
new file mode 100644
index 0000000..836dbd8
--- /dev/null
+++ b/src/util/gb-types.c.template
@@ -0,0 +1,38 @@
+/*** BEGIN file-header ***/
+#include "config.h"
+#include "gb-types.h"
+
+#include "gb-source-view-mode.h"
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType
+ enum_name@_get_type (void)
+{
+ static GType etype = 0;
+ if (G_UNLIKELY(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 (g_intern_static_string ("@EnumName@"), values);
+ }
+ return etype;
+}
+
+/*** END value-tail ***/
+
+/*** BEGIN file-tail ***/
+
+/*** END file-tail ***/
diff --git a/src/util/gb-types.h.template b/src/util/gb-types.h.template
new file mode 100644
index 0000000..bac2b1a
--- /dev/null
+++ b/src/util/gb-types.h.template
@@ -0,0 +1,24 @@
+/*** BEGIN file-header ***/
+#ifndef __GB_TYPES_H__
+#define __GB_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType @enum_name _get_type (void) G_GNUC_CONST;
+#define @ENUMPREFIX _TYPE_@ENUMSHORT@ (@enum_name _get_type ())
+/*** END value-header ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+
+#endif /* __GB_TYPE_H__ */
+/*** END file-tail ***/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]