|  |  |  | <!--
 | 
					
						
							|  |  |  |              LUFA Library | 
					
						
							|  |  |  |      Copyright (C) Dean Camera, 2017. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   dean [at] fourwalledcubicle [dot] com | 
					
						
							|  |  |  |            www.lufa-lib.org | 
					
						
							|  |  |  | --> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <!-- Atmel Studio framework Module XML transform file --> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <!-- Creates an asf.xml module document from a given manifest list of XML files,
 | 
					
						
							|  |  |  |      and adds appropriate documentation links by cross-referencing the Doxygen | 
					
						
							|  |  |  |      tag output file to map Doxygen group names to generated filenames. --> | 
					
						
							|  |  |  | <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 Doxygen tag filename mentioned in the root node for later use --> | 
					
						
							|  |  |  | 	<xsl:param name="lufa-doxygen-tagfile" select="lufa-manifest/@tagfile"/> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	<!-- Store the LUFA Doxygen documentation filename mentioned in the root node for later use --> | 
					
						
							|  |  |  | 	<xsl:param name="lufa-doxygen-docfile" select="lufa-manifest/@docfile"/> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	<!-- Read manifest list, add a comment to indicate the source filename
 | 
					
						
							|  |  |  | 	     and then copy/process all ASF 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> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		<asf xmlversion="1.0"> | 
					
						
							|  |  |  | 			<xsl:for-each select="xml-source"> | 
					
						
							|  |  |  | 				<xsl:comment>Sourced from <xsl:value-of select="@filename"/></xsl:comment> | 
					
						
							|  |  |  | 				<xsl:apply-templates select="document(@filename)/lufa/asf/*"/> | 
					
						
							|  |  |  | 			</xsl:for-each> | 
					
						
							|  |  |  | 		</asf> | 
					
						
							|  |  |  | 	</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> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	<!-- For Doxygen entry point nodes we need to convert them into help link
 | 
					
						
							|  |  |  | 	     nodes instead and add descriptions, so that they show up as links in | 
					
						
							|  |  |  | 	     Studio correctly --> | 
					
						
							|  |  |  | 	<xsl:template match="build[@type='doxygen-entry-point']"> | 
					
						
							|  |  |  | 		<!-- select-by-config entries should not have a help link --> | 
					
						
							|  |  |  | 		<xsl:if test="not(parent::select-by-config)"> | 
					
						
							|  |  |  | 			<build type="online-help" subtype="module-help-page-append"> | 
					
						
							|  |  |  | 			 	<xsl:attribute name="value"> | 
					
						
							|  |  |  | 			 		<!-- Extract filename of the HTML file that contains the documentation for this module from the Doxgen tag file --> | 
					
						
							|  |  |  | 				    <xsl:value-of select="document($lufa-doxygen-tagfile)/tagfile/compound[name=current()/@value]/filename"/> | 
					
						
							|  |  |  | 	  			</xsl:attribute> | 
					
						
							|  |  |  | 	  		</build> | 
					
						
							|  |  |  | 	  	</xsl:if> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		<!-- Modules inside a select-by-config entries should not have a help link --> | 
					
						
							|  |  |  | 		<xsl:if test="not(parent::module and ../parent::select-by-config)"> | 
					
						
							|  |  |  | 			<info type="description" value="summary"> | 
					
						
							|  |  |  | 			 	<!-- Extract brief description of the module from the Doxygen combined XML documentation file --> | 
					
						
							|  |  |  | 				<xsl:value-of select="document($lufa-doxygen-docfile)/doxygen/compounddef[compoundname=current()/@value]/briefdescription/para"/> | 
					
						
							|  |  |  | 			</info> | 
					
						
							|  |  |  | 	  	</xsl:if> | 
					
						
							|  |  |  | 	</xsl:template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </xsl:stylesheet> |