[gtkglext] Use template file for glib-mkenums
- From: Mukund Sivaraman <muks src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkglext] Use template file for glib-mkenums
- Date: Mon, 19 Jul 2010 12:16:35 +0000 (UTC)
commit 7ec371758203ebe4a13c11ccbe545e3d090f45d4
Author: Johannes Schmid <jhs gnome org>
Date: Mon Jul 19 17:44:25 2010 +0530
Use template file for glib-mkenums
Using templates avoids problems on mingw/msys. See bug #608034.
configure.ac | 3 +++
gdk/Makefile.am | 17 +++++------------
gdk/gtkglenumtypes.c.template | 33 +++++++++++++++++++++++++++++++++
gdk/gtkglenumtypes.h.template | 22 ++++++++++++++++++++++
4 files changed, 63 insertions(+), 12 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 5ddcf80..62e880b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -230,6 +230,9 @@ PKG_CHECK_MODULES([PANGOFT2], [pangoft2], ,
[AS_IF([test -z "${PANGOFT2_LIBS+x}"],
[AC_MSG_WARN([Pango Freetype support is required to build some of the examples.])])])
+GLIB_MKENUMS="`$PKG_CONFIG --variable=glib_mkenums glib-2.0`"
+AC_SUBST(GLIB_MKENUMS)
+
AX_CHECK_GLU
# FIXME: AX_CHECK_GLU's behavior diverges from common autoconf conventions
AM_CONDITIONAL([GLU],[test "$no_glu" != yes])
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index ff2c0e0..f37db42 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -142,22 +142,13 @@ $(libgdkglext_x11_ API_MJ@_ API_MI@_la_OBJECTS) $(libgdkglext_win32_ API_MJ@_ AP
$(srcdir)/gdkglenumtypes.h: stamp-gdkglenumtypes-h
@true
stamp-gdkglenumtypes-h: @REBUILD@ $(gdkglext_public_h_sources) Makefile
- ( cd $(srcdir) && glib-mkenums \
- --fhead "#ifndef __GDK_GL_ENUM_TYPES_H__\n#define __GDK_GL_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 GDK_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
- --ftail "G_END_DECLS\n\n#endif /* __GDK_GL_ENUM_TYPES_H__ */" \
+ ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtkglenumtypes.h.template \
$(gdkglext_public_h_sources) $(abs_builddir)/$(gdkglext_configure_generated_public_h_source) ) >> xgen-geth \
&& (cmp -s xgen-geth $(srcdir)/gdkglenumtypes.h || cp xgen-geth $(srcdir)/gdkglenumtypes.h ) \
&& rm -f xgen-geth \
&& echo timestamp > $(@F)
$(srcdir)/gdkglenumtypes.c: @REBUILD@ $(gdkglext_public_h_sources) Makefile
- ( cd $(srcdir) && glib-mkenums \
- --fhead "#include \"gdkgl.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" \
+ ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtkglenumtypes.c.template \
$(gdkglext_public_h_sources) $(abs_builddir)/$(gdkglext_configure_generated_public_h_source) ) > xgen-getc \
&& cp xgen-getc $(srcdir)/gdkglenumtypes.c \
&& rm -f xgen-getc
@@ -188,7 +179,9 @@ glext/gen-gdkglglxext-c.pl \
glext/gen-gdkglglxext-h.pl \
glext/gen-gdkglwglext-c.pl \
glext/gen-gdkglwglext-h.pl \
-glext/common-header.h
+glext/common-header.h \
+gtkglenumtypes.h.template \
+gtkglenumtypes.c.template
gdkglext_glext_public_h_sources = \
glext/glext.h \
diff --git a/gdk/gtkglenumtypes.c.template b/gdk/gtkglenumtypes.c.template
new file mode 100644
index 0000000..ea74620
--- /dev/null
+++ b/gdk/gtkglenumtypes.c.template
@@ -0,0 +1,33 @@
+/*** BEGIN file-header ***/
+/* Generated data (by glib-mkenums) */
+
+#include "gdkgl.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 ***/
diff --git a/gdk/gtkglenumtypes.h.template b/gdk/gtkglenumtypes.h.template
new file mode 100644
index 0000000..21afcfd
--- /dev/null
+++ b/gdk/gtkglenumtypes.h.template
@@ -0,0 +1,22 @@
+/*** BEGIN file-header ***/
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GDK_GL_ENUM_TYPES_H__
+#define __GDK_GL_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+
+#endif /* __GDK_GL_ENUM_TYPES_H__ */
+/*** END file-tail ***/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]