xref: /aosp_15_r20/external/apache-xml/test/tests/bugzilla/Bugzilla3489.xsl (revision 1212f9a0ffdc28482b8821715d2222bf16dc14e2)
1*1212f9a0SAndroid Build Coastguard Worker<xsl:stylesheet version="1.0"
2*1212f9a0SAndroid Build Coastguard Worker		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3*1212f9a0SAndroid Build Coastguard Worker	    xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
4*1212f9a0SAndroid Build Coastguard Worker		extension-element-prefixes="redirect">
5*1212f9a0SAndroid Build Coastguard Worker<!-- Reproducing Bugzilla 3489 -->
6*1212f9a0SAndroid Build Coastguard Worker	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
7*1212f9a0SAndroid Build Coastguard Worker	<xsl:strip-space elements="*"/>
8*1212f9a0SAndroid Build Coastguard Worker	<xsl:param name="output-dir"/>
9*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="*|@*"/>
10*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace">
11*1212f9a0SAndroid Build Coastguard Worker		<xsl:apply-templates/>
12*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
13*1212f9a0SAndroid Build Coastguard Worker
14*1212f9a0SAndroid Build Coastguard Worker
15*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project">
16*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="basedir" select="/workspace/@basedir"/>
17*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="outputdir" select="/workspace/@outputdir"/>
18*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="cvsdir">
19*1212f9a0SAndroid Build Coastguard Worker		  <xsl:value-of select="concat(/workspace/@cvsdir, '/')"/>
20*1212f9a0SAndroid Build Coastguard Worker		  <xsl:choose>
21*1212f9a0SAndroid Build Coastguard Worker		    <xsl:when test="cvs/@module">
22*1212f9a0SAndroid Build Coastguard Worker		      <xsl:value-of select="cvs/@module"/>
23*1212f9a0SAndroid Build Coastguard Worker		    </xsl:when>
24*1212f9a0SAndroid Build Coastguard Worker		    <xsl:otherwise>
25*1212f9a0SAndroid Build Coastguard Worker		      <xsl:value-of select="@srcdir"/>
26*1212f9a0SAndroid Build Coastguard Worker		    </xsl:otherwise>
27*1212f9a0SAndroid Build Coastguard Worker		  </xsl:choose>
28*1212f9a0SAndroid Build Coastguard Worker		</xsl:variable>
29*1212f9a0SAndroid Build Coastguard Worker		<xsl:message terminate="no">
30*1212f9a0SAndroid Build Coastguard Worker		  <xsl:value-of select="concat('Creating Gump buildfile for ', @name)"/>
31*1212f9a0SAndroid Build Coastguard Worker		</xsl:message>
32*1212f9a0SAndroid Build Coastguard Worker
33*1212f9a0SAndroid Build Coastguard Worker		<redirect:write file="{$outputdir}/{@name}-gumpbuild.xml">
34*1212f9a0SAndroid Build Coastguard Worker			<project name="{@name} Gump build file" default="gumpify" basedir="{$basedir}/{@srcdir}">
35*1212f9a0SAndroid Build Coastguard Worker
36*1212f9a0SAndroid Build Coastguard Worker				<!-- initialize time stamp and replace it in the html page -->
37*1212f9a0SAndroid Build Coastguard Worker				<target name="init">
38*1212f9a0SAndroid Build Coastguard Worker					<tstamp>
39*1212f9a0SAndroid Build Coastguard Worker						<format property="TIMESTAMP" pattern="HH:mm:ss"/>
40*1212f9a0SAndroid Build Coastguard Worker					</tstamp>
41*1212f9a0SAndroid Build Coastguard Worker					<replace file="{$outputdir}/status.xml" token="TAG-{@name}-TIME" value="${{TIMESTAMP}}"/>
42*1212f9a0SAndroid Build Coastguard Worker					<touch file="{$outputdir}/{@name}.FAILED"/>
43*1212f9a0SAndroid Build Coastguard Worker
44*1212f9a0SAndroid Build Coastguard Worker					<!--style in="{$basedir}/status.xml"
45*1212f9a0SAndroid Build Coastguard Worker						out="{$basedir}/{@name}.html"
46*1212f9a0SAndroid Build Coastguard Worker						destdir="{$basedir}"
47*1212f9a0SAndroid Build Coastguard Worker						style="{$basedir}/source-index-style.xsl">
48*1212f9a0SAndroid Build Coastguard Worker						<param name="filename" expression="{@name}.xml"/>
49*1212f9a0SAndroid Build Coastguard Worker					</style-->
50*1212f9a0SAndroid Build Coastguard Worker				</target>
51*1212f9a0SAndroid Build Coastguard Worker
52*1212f9a0SAndroid Build Coastguard Worker				<!-- check for all dependencies -->
53*1212f9a0SAndroid Build Coastguard Worker				<target name="dependency-check">
54*1212f9a0SAndroid Build Coastguard Worker					<xsl:apply-templates select="depend" mode="dependency-check"/>
55*1212f9a0SAndroid Build Coastguard Worker				</target>
56*1212f9a0SAndroid Build Coastguard Worker
57*1212f9a0SAndroid Build Coastguard Worker				<!-- generate the dependency failure targets -->
58*1212f9a0SAndroid Build Coastguard Worker				<xsl:apply-templates select="depend" mode="failed-dependency"/>
59*1212f9a0SAndroid Build Coastguard Worker
60*1212f9a0SAndroid Build Coastguard Worker				<!-- generate the main target that does everything -->
61*1212f9a0SAndroid Build Coastguard Worker				<target name="gumpify" depends="init,dependency-check" unless="dependency-failure">
62*1212f9a0SAndroid Build Coastguard Worker					<available file="{$cvsdir}" property="cvsmodule.{@name}.present"/>
63*1212f9a0SAndroid Build Coastguard Worker					<echo message="In GUMP project: {@name}"/>
64*1212f9a0SAndroid Build Coastguard Worker					<xsl:if test="cvs">
65*1212f9a0SAndroid Build Coastguard Worker						<antcall target="cvscheckout"/>
66*1212f9a0SAndroid Build Coastguard Worker						<!--<antcall target="cvsupdate"/>-->
67*1212f9a0SAndroid Build Coastguard Worker						<copy todir="{$basedir}/{@srcdir}">
68*1212f9a0SAndroid Build Coastguard Worker							<fileset dir="{$cvsdir}"/>
69*1212f9a0SAndroid Build Coastguard Worker						</copy>
70*1212f9a0SAndroid Build Coastguard Worker					</xsl:if>
71*1212f9a0SAndroid Build Coastguard Worker					<replace file="{$outputdir}/status.xml" token="TAG-{@name}-CVS-TIME" value="${{TIMESTAMP}}"/>
72*1212f9a0SAndroid Build Coastguard Worker					<antcall target="build"/>
73*1212f9a0SAndroid Build Coastguard Worker					<antcall target="status-pages"/>
74*1212f9a0SAndroid Build Coastguard Worker					<move file="{$outputdir}/{@name}.FAILED" tofile="{$outputdir}/{@name}.SUCCESS"/>
75*1212f9a0SAndroid Build Coastguard Worker				</target>
76*1212f9a0SAndroid Build Coastguard Worker
77*1212f9a0SAndroid Build Coastguard Worker				<xsl:apply-templates select="cvs">
78*1212f9a0SAndroid Build Coastguard Worker					<xsl:with-param name="target" select="'cvscheckout'"/>
79*1212f9a0SAndroid Build Coastguard Worker					<xsl:with-param name="command" select="'-z3 checkout -P'"/>
80*1212f9a0SAndroid Build Coastguard Worker				</xsl:apply-templates>
81*1212f9a0SAndroid Build Coastguard Worker
82*1212f9a0SAndroid Build Coastguard Worker				<xsl:apply-templates select="cvs">
83*1212f9a0SAndroid Build Coastguard Worker					<xsl:with-param name="target" select="'cvsupdate'"/>
84*1212f9a0SAndroid Build Coastguard Worker					<xsl:with-param name="command" select="'-z3 update -P -d -A'"/>
85*1212f9a0SAndroid Build Coastguard Worker				</xsl:apply-templates>
86*1212f9a0SAndroid Build Coastguard Worker
87*1212f9a0SAndroid Build Coastguard Worker				<!-- build targets -->
88*1212f9a0SAndroid Build Coastguard Worker				<target name="build" depends="init">
89*1212f9a0SAndroid Build Coastguard Worker					<xsl:apply-templates select="ant | script"/>
90*1212f9a0SAndroid Build Coastguard Worker				</target>
91*1212f9a0SAndroid Build Coastguard Worker
92*1212f9a0SAndroid Build Coastguard Worker				<!-- called if the build went fine it sets the status to SUCCESS in the html file -->
93*1212f9a0SAndroid Build Coastguard Worker				<target name="status-pages">
94*1212f9a0SAndroid Build Coastguard Worker				<replace file="{$outputdir}/status.xml" token="TAG-{@name}-STATUS" value="SUCCESS"/>
95*1212f9a0SAndroid Build Coastguard Worker				  <!-- <style in="" out="{/workspace/@basedir}/{@name}.html" style="" destdir="{/workspace/@basedir}"/> -->
96*1212f9a0SAndroid Build Coastguard Worker				</target>
97*1212f9a0SAndroid Build Coastguard Worker			</project>
98*1212f9a0SAndroid Build Coastguard Worker		</redirect:write>
99*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
100*1212f9a0SAndroid Build Coastguard Worker
101*1212f9a0SAndroid Build Coastguard Worker
102*1212f9a0SAndroid Build Coastguard Worker	<!-- ===========================================================================================
103*1212f9a0SAndroid Build Coastguard Worker		Execute a Ant build file/target as specified by the project
104*1212f9a0SAndroid Build Coastguard Worker		 =========================================================================================== -->
105*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/ant">
106*1212f9a0SAndroid Build Coastguard Worker		<!-- Ant build file directory -->
107*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="build.dir">
108*1212f9a0SAndroid Build Coastguard Worker			<xsl:value-of select="concat(/workspace/@basedir, '/', ../@srcdir)"/>
109*1212f9a0SAndroid Build Coastguard Worker			<xsl:if test="@basedir">
110*1212f9a0SAndroid Build Coastguard Worker				<xsl:value-of select="concat('/', @basedir)"/>
111*1212f9a0SAndroid Build Coastguard Worker			</xsl:if>
112*1212f9a0SAndroid Build Coastguard Worker		</xsl:variable>
113*1212f9a0SAndroid Build Coastguard Worker
114*1212f9a0SAndroid Build Coastguard Worker		<!-- copy project files -->
115*1212f9a0SAndroid Build Coastguard Worker		<!--copy todir="{/workspace/@basedir}/{../@srcdir}">
116*1212f9a0SAndroid Build Coastguard Worker			<fileset dir="{/workspace/@viewdir}/{../@srcdir}"/>
117*1212f9a0SAndroid Build Coastguard Worker		</copy-->
118*1212f9a0SAndroid Build Coastguard Worker
119*1212f9a0SAndroid Build Coastguard Worker		<!-- execute the target needed to build the project -->
120*1212f9a0SAndroid Build Coastguard Worker		<java classname="org.apache.tools.ant.Main" fork="yes" failonerror="yes"
121*1212f9a0SAndroid Build Coastguard Worker			output="{/workspace/@outputdir}/{../@name}-buildresult.txt"
122*1212f9a0SAndroid Build Coastguard Worker			dir="{$build.dir}">
123*1212f9a0SAndroid Build Coastguard Worker
124*1212f9a0SAndroid Build Coastguard Worker			<!-- transmit the worspace's properties -->
125*1212f9a0SAndroid Build Coastguard Worker			<xsl:for-each select="/workspace/property">
126*1212f9a0SAndroid Build Coastguard Worker				<arg value="-D{@name}={@value}"/>
127*1212f9a0SAndroid Build Coastguard Worker			</xsl:for-each>
128*1212f9a0SAndroid Build Coastguard Worker
129*1212f9a0SAndroid Build Coastguard Worker			<!-- a buildfile might be specified otherwise Ant will use its default -->
130*1212f9a0SAndroid Build Coastguard Worker			<xsl:if test="@buildfile">
131*1212f9a0SAndroid Build Coastguard Worker				<arg line="-buildfile {$build.dir}/{@buildfile}"/>
132*1212f9a0SAndroid Build Coastguard Worker			</xsl:if>
133*1212f9a0SAndroid Build Coastguard Worker			<arg line="-listener org.apache.tools.ant.XmlLogger -Dant.home={/workspace/@basedir}/dtools/ant -DXmlLogger.file={/workspace/@outputdir}/{../@name}-buildresult.xml"/>
134*1212f9a0SAndroid Build Coastguard Worker
135*1212f9a0SAndroid Build Coastguard Worker			<!-- specific target name to perform the build -->
136*1212f9a0SAndroid Build Coastguard Worker			<xsl:if test="@target">
137*1212f9a0SAndroid Build Coastguard Worker				<arg value="{@target}"/>
138*1212f9a0SAndroid Build Coastguard Worker			</xsl:if>
139*1212f9a0SAndroid Build Coastguard Worker			<xsl:apply-templates select="property"/>
140*1212f9a0SAndroid Build Coastguard Worker
141*1212f9a0SAndroid Build Coastguard Worker			<!-- Do the classpath thing here -->
142*1212f9a0SAndroid Build Coastguard Worker			<classpath>
143*1212f9a0SAndroid Build Coastguard Worker				<xsl:for-each select="../depend | ../option">
144*1212f9a0SAndroid Build Coastguard Worker					<xsl:variable name="name" select="@project"/>
145*1212f9a0SAndroid Build Coastguard Worker					<xsl:for-each select="/workspace/project[@name=$name]/jar">
146*1212f9a0SAndroid Build Coastguard Worker						<pathelement location="{../home}/{@name}"/>
147*1212f9a0SAndroid Build Coastguard Worker					</xsl:for-each>
148*1212f9a0SAndroid Build Coastguard Worker				</xsl:for-each>
149*1212f9a0SAndroid Build Coastguard Worker				<pathelement path="${{java.class.path}}"/>
150*1212f9a0SAndroid Build Coastguard Worker			</classpath>
151*1212f9a0SAndroid Build Coastguard Worker		</java>
152*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
153*1212f9a0SAndroid Build Coastguard Worker
154*1212f9a0SAndroid Build Coastguard Worker
155*1212f9a0SAndroid Build Coastguard Worker	<!-- ===========================================================================================
156*1212f9a0SAndroid Build Coastguard Worker		Execute a script
157*1212f9a0SAndroid Build Coastguard Worker		 =========================================================================================== -->
158*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/script">
159*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="script.dir" select="concat(/workspace/@basedir, '/', ../@srcdir)"/>
160*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="script.sh" select="concat($script.dir, '/', ../@name, '.sh')"/>
161*1212f9a0SAndroid Build Coastguard Worker		<chmod perm="ugo+rx" file="{$script.sh}"/>
162*1212f9a0SAndroid Build Coastguard Worker		<exec dir="{$script.dir}" executable="{$script.sh}"
163*1212f9a0SAndroid Build Coastguard Worker			output="{/workspace/@outputdir}/{../@name}-buildresult.txt"/>
164*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
165*1212f9a0SAndroid Build Coastguard Worker
166*1212f9a0SAndroid Build Coastguard Worker
167*1212f9a0SAndroid Build Coastguard Worker	<!-- ===========================================================================================
168*1212f9a0SAndroid Build Coastguard Worker		CVS stuff, not sure what it is doing
169*1212f9a0SAndroid Build Coastguard Worker		 =========================================================================================== -->
170*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/cvs">
171*1212f9a0SAndroid Build Coastguard Worker		<xsl:param name="target"/>
172*1212f9a0SAndroid Build Coastguard Worker		<xsl:param name="command"/>
173*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="repo" select="@repository"/>
174*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="cvsmodule.present" select="concat('cvsmodule.', ../@name, '.present')"/>
175*1212f9a0SAndroid Build Coastguard Worker		<target name="{$target}">
176*1212f9a0SAndroid Build Coastguard Worker			<xsl:if test="$target='cvscheckout'">
177*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="unless">
178*1212f9a0SAndroid Build Coastguard Worker					<xsl:value-of select="$cvsmodule.present"/>
179*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
180*1212f9a0SAndroid Build Coastguard Worker			</xsl:if>
181*1212f9a0SAndroid Build Coastguard Worker			<xsl:if test="$target='cvsupdate'">
182*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="if">
183*1212f9a0SAndroid Build Coastguard Worker					<xsl:value-of select="$cvsmodule.present"/>
184*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
185*1212f9a0SAndroid Build Coastguard Worker			</xsl:if>
186*1212f9a0SAndroid Build Coastguard Worker			<replace file="{/workspace/@outputdir}/status.xml" token="TAG-{../@name}-CVS-TIME" value="${TIMESTAMP}"/>
187*1212f9a0SAndroid Build Coastguard Worker			<cvs command="{$command}" quiet="true">
188*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="cvsroot">
189*1212f9a0SAndroid Build Coastguard Worker					<xsl:value-of select="/workspace/cvs-repository/tree[@name=$repo]/@root"/>
190*1212f9a0SAndroid Build Coastguard Worker					<xsl:if test="@dir">
191*1212f9a0SAndroid Build Coastguard Worker						<xsl:value-of select="concat('/', @dir)"/>
192*1212f9a0SAndroid Build Coastguard Worker					</xsl:if>
193*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
194*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="dest">
195*1212f9a0SAndroid Build Coastguard Worker					<xsl:value-of select="/workspace/@cvsdir"/>
196*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
197*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="package">
198*1212f9a0SAndroid Build Coastguard Worker					<xsl:choose>
199*1212f9a0SAndroid Build Coastguard Worker						<xsl:when test="@module">
200*1212f9a0SAndroid Build Coastguard Worker							<xsl:value-of select="@module"/>
201*1212f9a0SAndroid Build Coastguard Worker						</xsl:when>
202*1212f9a0SAndroid Build Coastguard Worker						<xsl:otherwise>
203*1212f9a0SAndroid Build Coastguard Worker							<xsl:value-of select="../@name"/>
204*1212f9a0SAndroid Build Coastguard Worker						</xsl:otherwise>
205*1212f9a0SAndroid Build Coastguard Worker					</xsl:choose>
206*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
207*1212f9a0SAndroid Build Coastguard Worker				<xsl:if test="@tag">
208*1212f9a0SAndroid Build Coastguard Worker					<xsl:attribute name="tag">
209*1212f9a0SAndroid Build Coastguard Worker						<xsl:value-of select="@tag"/>
210*1212f9a0SAndroid Build Coastguard Worker					</xsl:attribute>
211*1212f9a0SAndroid Build Coastguard Worker				</xsl:if>
212*1212f9a0SAndroid Build Coastguard Worker				<xsl:attribute name="output">
213*1212f9a0SAndroid Build Coastguard Worker					<xsl:value-of select="concat(/workspace/@outputdir, '/', ../@name, '-cvsresult.txt')"/>
214*1212f9a0SAndroid Build Coastguard Worker				</xsl:attribute>
215*1212f9a0SAndroid Build Coastguard Worker			</cvs>
216*1212f9a0SAndroid Build Coastguard Worker			<replace file="{/workspace/@outputdir}/status.xml" token="TAG-{../@name}-CVS-STATUS" value="SUCCESS"/>
217*1212f9a0SAndroid Build Coastguard Worker		</target>
218*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
219*1212f9a0SAndroid Build Coastguard Worker
220*1212f9a0SAndroid Build Coastguard Worker
221*1212f9a0SAndroid Build Coastguard Worker	<!-- ===========================================================================================
222*1212f9a0SAndroid Build Coastguard Worker		Check for a dependency availability and immediately call its
223*1212f9a0SAndroid Build Coastguard Worker		dependency-check related target.
224*1212f9a0SAndroid Build Coastguard Worker		 =========================================================================================== -->
225*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/depend" mode="dependency-check">
226*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="project" select="@project"/>
227*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="dependfilename" select="concat(/workspace/@outputdir, '/', $project, '.SUCCESS')"/>
228*1212f9a0SAndroid Build Coastguard Worker		<available file="{$dependfilename}" property="dependency.{$project}.present"/>
229*1212f9a0SAndroid Build Coastguard Worker		<antcall target="{$project}-dependency"/>
230*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
231*1212f9a0SAndroid Build Coastguard Worker
232*1212f9a0SAndroid Build Coastguard Worker
233*1212f9a0SAndroid Build Coastguard Worker	<!-- ===========================================================================================
234*1212f9a0SAndroid Build Coastguard Worker		Target called only if the related property is not set (ie the dependency
235*1212f9a0SAndroid Build Coastguard Worker		is not verified) since it will fail and replace its tag status by a Prereq
236*1212f9a0SAndroid Build Coastguard Worker		information in the html index file.
237*1212f9a0SAndroid Build Coastguard Worker		 =========================================================================================== -->
238*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/depend" mode="failed-dependency">
239*1212f9a0SAndroid Build Coastguard Worker		<xsl:variable name="failed-project" select="@project"/>
240*1212f9a0SAndroid Build Coastguard Worker		<target name="{$failed-project}-dependency" unless="dependency.{$failed-project}.present">
241*1212f9a0SAndroid Build Coastguard Worker			<echo message="PREREQ Failure: Project depends on {$failed-project}"/>
242*1212f9a0SAndroid Build Coastguard Worker			<available file="{/workspace/@outputdir}/{../@name}.FAILED" property="dependency-failure"/>
243*1212f9a0SAndroid Build Coastguard Worker			<replace file="{/workspace/@outputdir}/status.xml" token="TAG-{../@name}-STATUS" value="Prereq Failure: {$failed-project}"/>
244*1212f9a0SAndroid Build Coastguard Worker			<fail message="PREREQ Failure: Dependency on {$failed-project} could not be satisfied."/>
245*1212f9a0SAndroid Build Coastguard Worker		</target>
246*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
247*1212f9a0SAndroid Build Coastguard Worker
248*1212f9a0SAndroid Build Coastguard Worker
249*1212f9a0SAndroid Build Coastguard Worker	<xsl:template match="/workspace/project/ant/property">
250*1212f9a0SAndroid Build Coastguard Worker		<arg>
251*1212f9a0SAndroid Build Coastguard Worker			<xsl:attribute name="value">
252*1212f9a0SAndroid Build Coastguard Worker				<xsl:text>-D</xsl:text>
253*1212f9a0SAndroid Build Coastguard Worker				<xsl:value-of select="@name"/>
254*1212f9a0SAndroid Build Coastguard Worker				<xsl:text>=</xsl:text>
255*1212f9a0SAndroid Build Coastguard Worker				<xsl:choose>
256*1212f9a0SAndroid Build Coastguard Worker					<xsl:when test="@value">
257*1212f9a0SAndroid Build Coastguard Worker						<xsl:value-of select="@value"/>
258*1212f9a0SAndroid Build Coastguard Worker					</xsl:when>
259*1212f9a0SAndroid Build Coastguard Worker					<xsl:otherwise>
260*1212f9a0SAndroid Build Coastguard Worker						<xsl:if test="@reference and @project">
261*1212f9a0SAndroid Build Coastguard Worker			              <xsl:variable name="projname" select="@project"/>
262*1212f9a0SAndroid Build Coastguard Worker			              <xsl:variable name="refname" select="@reference"/>
263*1212f9a0SAndroid Build Coastguard Worker			              <xsl:choose>
264*1212f9a0SAndroid Build Coastguard Worker			                <xsl:when test="@id">
265*1212f9a0SAndroid Build Coastguard Worker			                  <xsl:variable name="propid" select="@id"/>
266*1212f9a0SAndroid Build Coastguard Worker			                  <xsl:value-of select="/workspace/project[@name=$projname]/*[name()=$refname and @id=$propid]"/>
267*1212f9a0SAndroid Build Coastguard Worker			                </xsl:when>
268*1212f9a0SAndroid Build Coastguard Worker			                <xsl:otherwise>
269*1212f9a0SAndroid Build Coastguard Worker			                  <xsl:value-of select="/workspace/project[@name=$name]/*[name()=$refname]"/>
270*1212f9a0SAndroid Build Coastguard Worker			                </xsl:otherwise>
271*1212f9a0SAndroid Build Coastguard Worker			              </xsl:choose>
272*1212f9a0SAndroid Build Coastguard Worker						</xsl:if>
273*1212f9a0SAndroid Build Coastguard Worker					</xsl:otherwise>
274*1212f9a0SAndroid Build Coastguard Worker				</xsl:choose>
275*1212f9a0SAndroid Build Coastguard Worker			</xsl:attribute>
276*1212f9a0SAndroid Build Coastguard Worker		</arg>
277*1212f9a0SAndroid Build Coastguard Worker	</xsl:template>
278*1212f9a0SAndroid Build Coastguard Worker
279*1212f9a0SAndroid Build Coastguard Worker  <!--
280*1212f9a0SAndroid Build Coastguard Worker   * Licensed to the Apache Software Foundation (ASF) under one
281*1212f9a0SAndroid Build Coastguard Worker   * or more contributor license agreements. See the NOTICE file
282*1212f9a0SAndroid Build Coastguard Worker   * distributed with this work for additional information
283*1212f9a0SAndroid Build Coastguard Worker   * regarding copyright ownership. The ASF licenses this file
284*1212f9a0SAndroid Build Coastguard Worker   * to you under the Apache License, Version 2.0 (the  "License");
285*1212f9a0SAndroid Build Coastguard Worker   * you may not use this file except in compliance with the License.
286*1212f9a0SAndroid Build Coastguard Worker   * You may obtain a copy of the License at
287*1212f9a0SAndroid Build Coastguard Worker   *
288*1212f9a0SAndroid Build Coastguard Worker   *     http://www.apache.org/licenses/LICENSE-2.0
289*1212f9a0SAndroid Build Coastguard Worker   *
290*1212f9a0SAndroid Build Coastguard Worker   * Unless required by applicable law or agreed to in writing, software
291*1212f9a0SAndroid Build Coastguard Worker   * distributed under the License is distributed on an "AS IS" BASIS,
292*1212f9a0SAndroid Build Coastguard Worker   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
293*1212f9a0SAndroid Build Coastguard Worker   * See the License for the specific language governing permissions and
294*1212f9a0SAndroid Build Coastguard Worker   * limitations under the License.
295*1212f9a0SAndroid Build Coastguard Worker  -->
296*1212f9a0SAndroid Build Coastguard Worker
297*1212f9a0SAndroid Build Coastguard Worker</xsl:stylesheet>
298