You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by jh...@apache.org on 2006/10/18 09:31:53 UTC

svn commit: r465167 - in /ant/core/trunk: docs/manual/CoreTasks/subant.html src/etc/common2master.xsl

Author: jhm
Date: Wed Oct 18 00:31:52 2006
New Revision: 465167

URL: http://svn.apache.org/viewvc?view=rev&rev=465167
Log:
Add a stylesheet for generating a master buildfile (iterating over all targets) from a common buildfile.

Added:
    ant/core/trunk/src/etc/common2master.xsl
Modified:
    ant/core/trunk/docs/manual/CoreTasks/subant.html

Modified: ant/core/trunk/docs/manual/CoreTasks/subant.html
URL: http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/subant.html?view=diff&rev=465167&r1=465166&r2=465167
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/subant.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/subant.html Wed Oct 18 00:31:52 2006
@@ -437,7 +437,7 @@
           <td valign="top" align="center">Yes</td>
         </tr>
       </table>
-      <p><em>since Ant 1.7</em>.</p>    
+      <p><em>since Ant 1.7</em>.</p>
       </blockquote></td></tr>
     </table>
     <!-- End Element -->
@@ -447,8 +447,8 @@
 
     </table>
     <!-- End Elements -->
-    
-    
+
+
 
     <table border="0" cellspacing="0" cellpadding="2" width="100%">
       <tr><td>&nbsp;</td></tr>
@@ -459,7 +459,7 @@
           <strong>Examples</strong></a></font>
       </td></tr>
 
-      <tr><td><blockquote>
+      <tr><td><blockquote style="">
         <pre>
         &lt;project name="subant" default="subant1"&gt;
             &lt;property name="build.dir" value="subant.build"/&gt;
@@ -561,7 +561,7 @@
         the root buildfile is capable to run the whole build over all
         modules.
         </p>
-        
+
         <pre>
         &lt;subant failonerror="false"&gt;
             &lt;fileset dir="." includes="**/build.xml" excludes="build.xml"/&gt;
@@ -569,8 +569,18 @@
             &lt;target name="build"/&gt;
         &lt;/subant&gt;
         </pre>
-        
-        <p>Does a "clean build" for each subproject.</p>
+
+        <p>Does a &quot;clean build&quot; for each subproject.</p>
+        <p><b>Hint:</b> because buildfiles are plain xml, you could generate the
+        masterbuildfile from the common buildfile by using a XSLT transformation:
+        </p>
+
+        <pre>
+        &lt;xslt in=&quot;common.xml&quot;
+              out=&quot;master.xml&quot;
+              style=&quot;${ant.home}/etc/common2master.xsl&quot;
+        /&gt;
+        </pre>
 
         <!-- manually written -->
 
@@ -585,4 +595,4 @@
 </table>
 
 </body>
-</html>
+</html>
\ No newline at end of file

Added: ant/core/trunk/src/etc/common2master.xsl
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/etc/common2master.xsl?view=auto&rev=465167
==============================================================================
--- ant/core/trunk/src/etc/common2master.xsl (added)
+++ ant/core/trunk/src/etc/common2master.xsl Wed Oct 18 00:31:52 2006
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 
+	This stylesheet can be used to generate a master buildfile from a common
+	buildfile (see manual for <subant>).
+	Foreach <target> in the common buildfile it generates a corresponding 
+	target in the master buildfile for iterating over that target.
+-->
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+    <xsl:output indent="no" method="text" encoding="ISO-8859-1"/>
+    <xsl:strip-space elements="*"/>
+
+
+<xsl:template match="/">
+    <xsl:apply-templates/>
+</xsl:template>
+
+
+
+<xsl:template match="project">
+<![CDATA[
+<project name="master"> 
+
+    <macrodef name="iterate">
+        <attribute name="target"/>
+        <sequential>
+            <subant target="@{target}">
+                <fileset dir="modules" includes="*/build.xml"/>
+            </subant>
+        </sequential>
+    </macrodef>
+]]>
+   
+    <xsl:apply-templates/>
+    
+<![CDATA[
+</project>
+]]>
+</xsl:template>
+
+
+<xsl:template match="target">
+    &lt;target name=&quot;<xsl:value-of select="@name"/>&quot;<xsl:if test="@description"> description=&quot;<xsl:value-of select="@description"/>&quot;</xsl:if>&gt;
+        &lt;iterate target=&quot;<xsl:value-of select="@name"/>&quot;/&gt;
+    &lt;/target&gt;
+</xsl:template>
+
+
+<xsl:template match="text()"/>
+
+
+
+</xsl:stylesheet>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org