| <?xml version="1.0"?> |
| <!-- This stylesheet is used to check that symbols exported |
| from libxml2-api.xml are also present in the symbol file |
| symbols.xml which is used to generate libxml2.syms setting |
| up the allowed access point to the shared libraries --> |
| |
| |
| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
| version="1.0"> |
| <xsl:output method="text" encoding="UTF-8"/> |
| |
| <xsl:variable name="syms" select="document('symbols.xml')"/> |
| |
| <xsl:template match="/"> |
| <xsl:message terminate="no"> |
| <xsl:text>Looking for functions in symbols.xml</xsl:text> |
| </xsl:message> |
| <xsl:apply-templates select="/api/symbols/function"/> |
| <xsl:message terminate="no"> |
| <xsl:text>Found </xsl:text> |
| <xsl:value-of select="count(/api/symbols/function)"/> |
| <xsl:text> functions</xsl:text> |
| </xsl:message> |
| <xsl:message terminate="no"> |
| <xsl:text>Looking for variables in symbols.xml</xsl:text> |
| </xsl:message> |
| <xsl:apply-templates select="/api/symbols/variable"/> |
| <xsl:message terminate="no"> |
| <xsl:text>Found </xsl:text> |
| <xsl:value-of select="count(/api/symbols/variable)"/> |
| <xsl:text> variables</xsl:text> |
| </xsl:message> |
| </xsl:template> |
| |
| <xsl:template match="function|variable"> |
| <xsl:variable name="name" select="@name"/> |
| <xsl:variable name="symbol" |
| select="$syms/symbols/release/symbol[. = $name]"/> |
| <xsl:if test="string($symbol) != $name"> |
| <xsl:message terminate="yes"> |
| <xsl:text>Failed to find export in symbols.xml: </xsl:text> |
| <xsl:value-of select="$name"/> |
| </xsl:message> |
| </xsl:if> |
| </xsl:template> |
| |
| </xsl:stylesheet> |
| |