Blame view

lufa-master/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt 2.25 KB
142ecdaf   rguillom   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  <!--
               LUFA Library
       Copyright (C) Dean Camera, 2019.
  
    dean [at] fourwalledcubicle [dot] com
             www.lufa-lib.org
  -->
  
  <!-- Atmel Studio framework Extension XML transform file -->
  
  <!-- Creates an extension.xml document from a given manifest list of XML files,
       and adds appropriate documentation base URI entries and version
       information. -->
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  	<xsl:output method="xml" omit-xml-declaration="yes"/>
  
  	<!-- Store the LUFA version mentioned in the root node for later use -->
  	<xsl:param name="lufa-version" select="lufa-manifest/@version"/>
  
  	<!-- Read manifest list and then process all FDK nodes in the referenced
  	     document -->
  	<xsl:template match="lufa-manifest">
  		<xsl:comment>This file has been automatically generated from the LUFA Atmel Studio integration XML files.</xsl:comment>
  
  		<extension-container xmlversion="2.0">
  			<xsl:for-each select="xml-source">
  				<xsl:apply-templates select="document(@filename)/lufa/extension-container/*"/>
  			</xsl:for-each>
  		</extension-container>
  	</xsl:template>
  
  	<!-- Recursively match and copy/process all nodes/attributes -->
  	<xsl:template match="@*|node()">
  		<xsl:copy>
  			<xsl:apply-templates select="@*|node()"/>
  		</xsl:copy>
  	</xsl:template>
  
  	<!-- Update the extension version to the version of LUFA being used -->
  	<xsl:template match="extension/@version">
  		<xsl:attribute name="version">
  			<xsl:value-of select="substring($lufa-version, 1, 2)"/>
  			<xsl:text>.</xsl:text>
  			<xsl:value-of select="substring($lufa-version, 3, 2)"/>
  			<xsl:text>.</xsl:text>
  			<xsl:value-of select="substring($lufa-version, 5, 2)"/>
  		</xsl:attribute>
  	</xsl:template>
  
  	<!-- Update the extension online help URLs to the version of LUFA being
  	     used -->
  	<xsl:template match="online-help/*/@baseurl">
  		<xsl:attribute name="baseurl">
  			<xsl:value-of select="current()"/>
  			<xsl:value-of select="$lufa-version"/>
  			<xsl:text>/html/</xsl:text>
  		</xsl:attribute>
  	</xsl:template>
  
  	<xsl:template match="online-help/index-page/@url">
  		<xsl:attribute name="url">
  			<xsl:value-of select="current()"/>
  			<xsl:value-of select="$lufa-version"/>
  			<xsl:text>/html/</xsl:text>
  		</xsl:attribute>
  	</xsl:template>
  
  </xsl:stylesheet>