diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2008-06-09 13:31:20 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2008-06-09 13:31:20 +0000 |
commit | eff7f4459fadb407f9d1224fc9e74e957ad12028 (patch) | |
tree | 7cc0689c3ca038f55ac2449315fc2b2eef56ad63 /tools | |
parent | fa58009de499700a0423bdc84788e30bc7476313 (diff) |
Actually add GLib interfaces generator XSL
Diffstat (limited to 'tools')
-rw-r--r-- | tools/glib-interfaces-body-generator.xsl | 47 | ||||
-rw-r--r-- | tools/glib-interfaces-generator.xsl | 55 |
2 files changed, 102 insertions, 0 deletions
diff --git a/tools/glib-interfaces-body-generator.xsl b/tools/glib-interfaces-body-generator.xsl new file mode 100644 index 000000000..caff8917a --- /dev/null +++ b/tools/glib-interfaces-body-generator.xsl @@ -0,0 +1,47 @@ +<!-- Stylesheet to extract C interface names from the Telepathy spec. +The master copy of this stylesheet is in telepathy-glib - please make any +changes there. + +Copyright (C) 2006, 2007 Collabora Limited + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +--> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + exclude-result-prefixes="tp"> + + <xsl:import href="c-interfaces-generator.xsl"/> + + <xsl:template match="interface"> + <xsl:text>GQuark </xsl:text> + <xsl:value-of select="$prefix"/> + <xsl:text>_iface_quark_</xsl:text> + <xsl:value-of select="translate(../@name, concat($upper, '/'), $lower)"/> + <xsl:text> (void) { </xsl:text> + <xsl:text> static GQuark quark = 0; </xsl:text> + <xsl:text> if (G_UNLIKELY (quark == 0)) </xsl:text> + <xsl:text> { </xsl:text> + <xsl:text> quark = g_quark_from_static_string ("</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>"); </xsl:text> + <xsl:text> } </xsl:text> + <xsl:text> return quark; </xsl:text> + <xsl:text>} </xsl:text> + </xsl:template> + +</xsl:stylesheet> + +<!-- vim:set sw=2 sts=2 et noai noci: --> diff --git a/tools/glib-interfaces-generator.xsl b/tools/glib-interfaces-generator.xsl new file mode 100644 index 000000000..e703c407e --- /dev/null +++ b/tools/glib-interfaces-generator.xsl @@ -0,0 +1,55 @@ +<!-- Stylesheet to extract C interface names from the Telepathy spec. +The master copy of this stylesheet is in telepathy-glib - please make any +changes there. + +Copyright (C) 2006, 2007 Collabora Limited + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +--> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + exclude-result-prefixes="tp"> + + <xsl:import href="c-interfaces-generator.xsl"/> + + <xsl:template match="interface"> + <xsl:apply-imports/> + + <xsl:text>/** * </xsl:text> + <xsl:value-of select="$PREFIX"/> + <xsl:text>_IFACE_QUARK_</xsl:text> + <xsl:value-of select="translate(../@name, concat($lower, '/'), $upper)"/> + <xsl:text>: * * Expands to a call to a function that </xsl:text> + <xsl:text>returns a quark for the interface name "</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>" */ #define </xsl:text> + <xsl:value-of select="$PREFIX"/> + <xsl:text>_IFACE_QUARK_</xsl:text> + <xsl:value-of select="translate(../@name, concat($lower, '/'), $upper)"/> + <xsl:text> \ (</xsl:text> + <xsl:value-of select="$prefix"/> + <xsl:text>_iface_quark_</xsl:text> + <xsl:value-of select="translate(../@name, concat($upper, '/'), $lower)"/> + <xsl:text> ()) GQuark </xsl:text> + <xsl:value-of select="$prefix"/> + <xsl:text>_iface_quark_</xsl:text> + <xsl:value-of select="translate(../@name, concat($upper, '/'), $lower)"/> + <xsl:text> (void); </xsl:text> + </xsl:template> + +</xsl:stylesheet> + +<!-- vim:set sw=2 sts=2 et noai noci: --> |