80 lines
2.8 KiB
XML
80 lines
2.8 KiB
XML
<?xml version="1.0" encoding="ISO-8859-15" ?>
|
|
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
|
|
|
<!-- get-dirname: get directory part of file $path-->
|
|
|
|
<!-- call me with:
|
|
<xsl:param name="path">
|
|
<xsl:for-each select="ancestor::build">
|
|
<xsl:call-template name="get-dirname">
|
|
<xsl:with-param select="@base" name="path"/>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
</xsl:param>
|
|
-->
|
|
|
|
<xsl:template name="get-dirname">
|
|
<xsl:param name="path"/>
|
|
<xsl:choose>
|
|
<xsl:when test="contains($path, '/')">
|
|
<xsl:choose>
|
|
<xsl:when test="substring($path, string-length($path)) != '/'">
|
|
<xsl:call-template name="get-dirname">
|
|
<xsl:with-param select="substring($path, 1, string-length($path)-1)" name="path"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$path"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:message terminate="yes">
|
|
No valid relative path
|
|
</xsl:message>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- return value: 0=found, 1=not found -->
|
|
<xsl:template name="resolve-condition">
|
|
<xsl:param name="expression"/>
|
|
<xsl:param name="confexpr">CONFIG_<xsl:value-of select="$expression"/></xsl:param>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="$expression!=''">
|
|
<xsl:variable name="value"><xsl:value-of select="document('config.xml',.)//option[@name=$confexpr]/attribute::value"/></xsl:variable>
|
|
<xsl:variable name="type"><xsl:value-of select="document('config.xml',.)//option[@name=$confexpr]/attribute::type"/></xsl:variable>
|
|
<xsl:choose>
|
|
<xsl:when test="$type='boolean'">
|
|
<xsl:choose>
|
|
<xsl:when test="$value='true'"><xsl:text>0</xsl:text></xsl:when>
|
|
<xsl:when test="$value='false'"><xsl:text>1</xsl:text></xsl:when>
|
|
<!-- boolean but no value is false -->
|
|
<xsl:when test="$value=''"><xsl:text>1</xsl:text></xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:message terminate="yes">Error:<xsl:value-of select="$confexpr"/> has no valid value '<xsl:value-of select="$value"/>'.</xsl:message>
|
|
</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<!-- if it doesn't exist, it is false -->
|
|
<xsl:when test="$type=''"><xsl:text>1</xsl:text></xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:message terminate="yes">Error:<xsl:value-of select="$confexpr"/> is not a boolean value ('<xsl:value-of select="$type"/>').</xsl:message>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<!-- debug - ->
|
|
<xsl:message>
|
|
<xsl:value-of select="$confexpr"/> = <xsl:value-of select="$value"/>
|
|
</xsl:message>
|
|
<!- - -->
|
|
</xsl:when>
|
|
<!-- if no expression is there we return true -->
|
|
<xsl:otherwise>0</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
|
|
</xsl:stylesheet>
|