diff options
Diffstat (limited to 'LUFA/StudioIntegration/XDK')
4 files changed, 192 insertions, 0 deletions
diff --git a/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt b/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt new file mode 100644 index 0000000000..c3fb82294a --- /dev/null +++ b/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt @@ -0,0 +1,68 @@ +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + 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> diff --git a/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt b/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt new file mode 100644 index 0000000000..2998b879f0 --- /dev/null +++ b/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt @@ -0,0 +1,35 @@ +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + 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']|build[@type='distribute']"> + <xsl:value-of select="@value"/> + <xsl:text>
</xsl:text> + </xsl:template> +</xsl:stylesheet> diff --git a/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt b/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt new file mode 100644 index 0000000000..6c22ff94cc --- /dev/null +++ b/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt @@ -0,0 +1,23 @@ +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework 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> diff --git a/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt b/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt new file mode 100644 index 0000000000..0ab44e7a18 --- /dev/null +++ b/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt @@ -0,0 +1,66 @@ +<!-- + 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> |