aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/StudioIntegration/XSLT
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2013-01-03 16:16:45 +0000
committerDean Camera <dean@fourwalledcubicle.com>2013-01-03 16:16:45 +0000
commit56f03a793c8f6d63b3ce70bfdb1f4c4f05e1934a (patch)
tree023f9b967991af7269befde633ce254eddc86ca2 /LUFA/StudioIntegration/XSLT
parent5386a5a7ffd4a2b739ce6f41d918378a6f70da15 (diff)
downloadlufa-56f03a793c8f6d63b3ce70bfdb1f4c4f05e1934a.tar.gz
lufa-56f03a793c8f6d63b3ce70bfdb1f4c4f05e1934a.tar.bz2
lufa-56f03a793c8f6d63b3ce70bfdb1f4c4f05e1934a.zip
Move out Studio Integration XML transform files to their own directory for neatness.
Diffstat (limited to 'LUFA/StudioIntegration/XSLT')
-rw-r--r--LUFA/StudioIntegration/XSLT/lufa_extension_transform.xslt60
-rw-r--r--LUFA/StudioIntegration/XSLT/lufa_filelist_transform.xslt35
-rw-r--r--LUFA/StudioIntegration/XSLT/lufa_indent_transform.xslt23
-rw-r--r--LUFA/StudioIntegration/XSLT/lufa_module_transform.xslt65
4 files changed, 183 insertions, 0 deletions
diff --git a/LUFA/StudioIntegration/XSLT/lufa_extension_transform.xslt b/LUFA/StudioIntegration/XSLT/lufa_extension_transform.xslt
new file mode 100644
index 000000000..a40176a8a
--- /dev/null
+++ b/LUFA/StudioIntegration/XSLT/lufa_extension_transform.xslt
@@ -0,0 +1,60 @@
+<!--
+ LUFA Library
+ Copyright (C) Dean Camera, 2013.
+
+ 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>
+
+ <fdk xml-version="2.0">
+ <xsl:for-each select="xml-source">
+ <xsl:apply-templates select="document(@filename)/lufa/fdk/*"/>
+ </xsl:for-each>
+ </fdk>
+ </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:stylesheet>
diff --git a/LUFA/StudioIntegration/XSLT/lufa_filelist_transform.xslt b/LUFA/StudioIntegration/XSLT/lufa_filelist_transform.xslt
new file mode 100644
index 000000000..103ff51a9
--- /dev/null
+++ b/LUFA/StudioIntegration/XSLT/lufa_filelist_transform.xslt
@@ -0,0 +1,35 @@
+<!--
+ LUFA Library
+ Copyright (C) Dean Camera, 2013.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+-->
+
+<!-- Atmel Studio framework Module XML transform file -->
+
+<!-- Outputs a flat file list of all source files referenced in all modules of
+ the input manifest XML file, so that they can be checked for existence. -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="xml" omit-xml-declaration="yes"/>
+
+ <!-- Read manifest list, add a comment to indicate the source filename
+ and then process all ASF nodes in the referenced document -->
+ <xsl:template match="lufa-manifest">
+ <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>
+ </xsl:template>
+
+ <!-- Recursively match and process all nodes/attributes -->
+ <xsl:template match="@*|node()">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:template>
+
+ <!-- Match source file nodes, output filename -->
+ <xsl:template match="build[@type='c-source']|build[@type='header-file']">
+ <xsl:value-of select="@value"/>
+ <xsl:text>&#xA;</xsl:text>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/LUFA/StudioIntegration/XSLT/lufa_indent_transform.xslt b/LUFA/StudioIntegration/XSLT/lufa_indent_transform.xslt
new file mode 100644
index 000000000..a05a82427
--- /dev/null
+++ b/LUFA/StudioIntegration/XSLT/lufa_indent_transform.xslt
@@ -0,0 +1,23 @@
+<!--
+ LUFA Library
+ Copyright (C) Dean Camera, 2013.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+-->
+
+<!-- Atmel Studio framework Module XML transform file -->
+
+<!-- Indents a given XML document to match the node hierarchy. -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
+
+ <!-- Remove all white-space on all elements so that they can be indented -->
+ <xsl:strip-space elements="*"/>
+
+ <!-- Match the root node and copy, so that the output will be a correctly
+ indented version of the input document -->
+ <xsl:template match="/">
+ <xsl:copy-of select="."/>
+ </xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/LUFA/StudioIntegration/XSLT/lufa_module_transform.xslt b/LUFA/StudioIntegration/XSLT/lufa_module_transform.xslt
new file mode 100644
index 000000000..e3a0329ea
--- /dev/null
+++ b/LUFA/StudioIntegration/XSLT/lufa_module_transform.xslt
@@ -0,0 +1,65 @@
+<!--
+ LUFA Library
+ Copyright (C) Dean Camera, 2013.
+
+ 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"/>
+
+ <!-- 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, so that they show up as links in Studio correctly -->
+ <xsl:template match="build[@type='doxygen-entry-point']">
+ <xsl:call-template name="add_help_nodes">
+ <xsl:with-param name="filename" select="document($lufa-doxygen-tagfile)//compound[name=current()/@value]/filename"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- Generate additional help nodes from the given help filename -->
+ <xsl:template name="add_help_nodes">
+ <xsl:param name="filename"/>
+
+ <build type="online-help" subtype="module-help-page-append">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+ </build>
+
+ <build type="offline-help" subtype="module-help-page-append">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+ </build>
+ </xsl:template>
+
+</xsl:stylesheet>