Blame win32/defgen.xsl

Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
	win32/defgen.xsl
Packit Service a31ea6
	This stylesheet is used to transform doc/libxml2-api.xml into a pseudo-source,
Packit Service a31ea6
	which can then be preprocessed to get the .DEF file for the Microsoft's linker.
Packit Service a31ea6
	
Packit Service a31ea6
	Use any XSLT processor to produce a file called libxml2.def.src in the win32
Packit Service a31ea6
	subdirectory, for example, run xsltproc from the win32 subdirectory:
Packit Service a31ea6
	
Packit Service a31ea6
	  xsltproc -o libxml2.def.src defgen.xsl ../doc/libxml2-api.xml
Packit Service a31ea6
	  
Packit Service a31ea6
	Once that finishes, rest assured, the Makefile will know what to do with the
Packit Service a31ea6
	generated file. 
Packit Service a31ea6
Packit Service a31ea6
	April 2003, Igor Zlatkovic <igor@zlatkovic.com>
Packit Service a31ea6
-->
Packit Service a31ea6
 ]>
Packit Service a31ea6
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Packit Service a31ea6
	<xsl:strip-space elements="*"/>
Packit Service a31ea6
	<xsl:output method="text"/>
Packit Service a31ea6
	<xsl:template match="/">
Packit Service a31ea6
		<xsl:text>#define LIBXML2_COMPILING_MSCCDEF&nl;</xsl:text>
Packit Service a31ea6
		<xsl:text>#include "../include/libxml/xmlversion.h"&nl;</xsl:text>
Packit Service a31ea6
		<xsl:text>LIBRARY libxml2&nl;</xsl:text>
Packit Service a31ea6
		<xsl:text>EXPORTS&nl;</xsl:text>
Packit Service a31ea6
		<xsl:for-each select="/api/symbols/*[self::variable or self::function]">
Packit Service a31ea6
			
Packit Service a31ea6
			<xsl:if test="@file = 'c14n'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_C14N_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'catalog'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_CATALOG_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'debugXML'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'DOCBparser'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'HTMLtree')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'nanohttp'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_HTTP_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'nanoftp'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xmlschemas') 
Packit Service a31ea6
					or (@file = 'xmlschemastypes')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xinclude'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_XINCLUDE_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xlink'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_XLINK_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xmlautomata'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_AUTOMATA_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xmlunicode')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xpathInternals')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_XPATH_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xpointer'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_XPTR_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'htmlInitAutoClose') 
Packit Service a31ea6
					or (@name = 'htmlCreateFileParserCtxt') 
Packit Service a31ea6
					or (@name = 'inithtmlDefaultSAXHandler')
Packit Service a31ea6
					or (@name = 'xmlIsXHTML') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPOpenW') 
Packit Service a31ea6
					or (@name = 'xmlRegisterHTTPPostCallbacks') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPMatch')
Packit Service a31ea6
					or (@name = 'xmlIOHTTPOpen') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPRead') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPClose')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'initdocbDefaultSAXHandler')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@name = 'xmlValidBuildContentModel'">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlIOFTPOpen') 
Packit Service a31ea6
					or (@name = 'xmlIOFTPRead') 
Packit Service a31ea6
					or (@name = 'xmlIOFTPClose')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlTextReaderRelaxNGSetSchema')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlXPathDebugDumpCompExpr')">
Packit Service a31ea6
				<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlMallocAtomicLoc') 
Packit Service a31ea6
					or (@name = 'xmlReallocLoc') 
Packit Service a31ea6
					or (@name = 'xmlMemStrdupLoc')">
Packit Service a31ea6
				<xsl:text>#ifdef DEBUG_MEMORY_LOCATION&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
			<xsl:choose>
Packit Service a31ea6
				
Packit Service a31ea6
						or (@name = 'xmlMallocAtomic') 
Packit Service a31ea6
						or (@name = 'xmlRealloc') 
Packit Service a31ea6
						or (@name = 'xmlFree') 
Packit Service a31ea6
						or (@name = 'xmlMemStrdup')">
Packit Service a31ea6
					<xsl:text>#ifdef LIBXML_THREAD_ALLOC_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					<xsl:text>__</xsl:text>
Packit Service a31ea6
					<xsl:value-of select="@name"/>
Packit Service a31ea6
					<xsl:text>&nl;</xsl:text>
Packit Service a31ea6
					<xsl:text>#else&nl;</xsl:text>
Packit Service a31ea6
					<xsl:value-of select="@name"/>
Packit Service a31ea6
					<xsl:text> DATA&nl;</xsl:text>
Packit Service a31ea6
					<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
				</xsl:when>
Packit Service a31ea6
				
Packit Service a31ea6
						or (@name = 'htmlDefaultSAXHandler') 
Packit Service a31ea6
						or (@name = 'oldXMLWDcompatibility') 
Packit Service a31ea6
						or (@name = 'xmlBufferAllocScheme') 
Packit Service a31ea6
						or (@name = 'xmlDefaultBufferSize') 
Packit Service a31ea6
						or (@name = 'xmlDefaultSAXHandler') 
Packit Service a31ea6
						or (@name = 'xmlDefaultSAXLocator') 
Packit Service a31ea6
						or (@name = 'xmlDoValidityCheckingDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlGenericError') 
Packit Service a31ea6
						or (@name = 'xmlGenericErrorContext') 
Packit Service a31ea6
						or (@name = 'xmlGetWarningsDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlIndentTreeOutput') 
Packit Service a31ea6
						or (@name = 'xmlTreeIndentString') 
Packit Service a31ea6
						or (@name = 'xmlKeepBlanksDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlLineNumbersDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlLoadExtDtdDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlParserDebugEntities') 
Packit Service a31ea6
						or (@name = 'xmlParserVersion') 
Packit Service a31ea6
						or (@name = 'xmlPedanticParserDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlSaveNoEmptyTags') 
Packit Service a31ea6
						or (@name = 'xmlSubstituteEntitiesDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlRegisterNodeDefaultValue') 
Packit Service a31ea6
						or (@name = 'xmlDeregisterNodeDefaultValue')">
Packit Service a31ea6
					<xsl:text>#ifdef LIBXML_THREAD_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					<xsl:if test="@name = 'docbDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:text>__</xsl:text>
Packit Service a31ea6
					<xsl:value-of select="@name"/>
Packit Service a31ea6
					<xsl:text>&nl;</xsl:text>
Packit Service a31ea6
					<xsl:if test="@name = 'docbDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:text>#else&nl;</xsl:text>
Packit Service a31ea6
					<xsl:if test="@name = 'docbDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:value-of select="@name"/>
Packit Service a31ea6
					<xsl:text> DATA&nl;</xsl:text>
Packit Service a31ea6
					<xsl:if test="@name = 'docbDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
Packit Service a31ea6
						<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
				</xsl:when>
Packit Service a31ea6
				<xsl:otherwise>
Packit Service a31ea6
					<xsl:value-of select="@name"/>
Packit Service a31ea6
					<xsl:if test="self::variable">
Packit Service a31ea6
						<xsl:text> DATA</xsl:text>
Packit Service a31ea6
					</xsl:if>
Packit Service a31ea6
					<xsl:text>&nl;</xsl:text>
Packit Service a31ea6
				</xsl:otherwise>
Packit Service a31ea6
			</xsl:choose>
Packit Service a31ea6
			
Packit Service a31ea6
			<xsl:if test="@file = 'c14n'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'catalog'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'debugXML'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'DOCBparser'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'HTMLtree')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'nanohttp'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'nanoftp'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xmlschemas') 
Packit Service a31ea6
					or (@file = 'xmlschemastypes')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xinclude'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xlink'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xmlautomata'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xmlunicode')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@file = 'xpathInternals')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@file = 'xpointer'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'htmlInitAutoClose') 
Packit Service a31ea6
					or (@name = 'htmlCreateFileParserCtxt') 
Packit Service a31ea6
					or (@name = 'inithtmlDefaultSAXHandler')
Packit Service a31ea6
					or (@name = 'xmlIsXHTML') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPOpenW') 
Packit Service a31ea6
					or (@name = 'xmlRegisterHTTPPostCallbacks') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPMatch')
Packit Service a31ea6
					or (@name = 'xmlIOHTTPOpen') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPRead') 
Packit Service a31ea6
					or (@name = 'xmlIOHTTPClose')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'initdocbDefaultSAXHandler')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			<xsl:if test="@name = 'xmlValidBuildContentModel'">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlIOFTPOpen') 
Packit Service a31ea6
					or (@name = 'xmlIOFTPRead') 
Packit Service a31ea6
					or (@name = 'xmlIOFTPClose')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlTextReaderRelaxNGSetSchema')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlXPathDebugDumpCompExpr')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
			
Packit Service a31ea6
					or (@name = 'xmlMallocAtomicLoc') 
Packit Service a31ea6
					or (@name = 'xmlReallocLoc') 
Packit Service a31ea6
					or (@name = 'xmlMemStrdupLoc')">
Packit Service a31ea6
				<xsl:text>#endif&nl;</xsl:text>
Packit Service a31ea6
			</xsl:if>
Packit Service a31ea6
		</xsl:for-each>
Packit Service a31ea6
	</xsl:template>
Packit Service a31ea6
</xsl:stylesheet>
Packit Service a31ea6