Glatzemann 39dc83d33e added NAnt 0.91 build system to the lib folder
added build folder
added build script for release build of ANX.Framework and all RenderSystems
fixed some issues in projects regarding compiler directives
removed StockShaderCodeGenerator from Pre-Build-Events. Build the Stock shaders using NAnt target build_stock_shaders.
started Wiki documentation for custom build switches (e.g. extended mode)
2011-11-18 11:04:26 +00:00

255 lines
9.4 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- Documenting T:NAnt.Core.Tasks.IfTask-->
<head>
<meta http-equiv="Content-Language" content="en-ca" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../style.css" />
<title>&lt;if&gt; Task</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
<tr>
<td class="NavBar-Cell">
<a href="http://nant.sourceforge.net">
<b>NAnt</b>
</a>
<img alt="-&gt;" src="../images/arrow.gif" />
<a href="../index.html">Help</a>
<img alt="-&gt;" src="../images/arrow.gif" />
<a href="../tasks/index.html">Task Reference</a>
<img alt="-&gt;" src="../images/arrow.gif" /> &lt;if&gt;</td>
<td class="NavBar-Cell" align="right">
v0.91</td>
</tr>
</table>
<h1>&lt;if&gt;</h1>
<p> Checks the conditional attributes and executes the children if <b>true</b>. </p>
<p> If no conditions are checked, all child tasks are executed. </p>
<p> If more than one attribute is used, they are &amp;&amp;'d. The first to fail stops the check. </p>
<p> The order of condition evaluation is, <code>targetexists</code>, <code>propertyexists</code>, <code>propertytrue</code>, <code>uptodatefile</code>. </p>
<p class="i2">
<b>Note:</b> instead of using the deprecated attributes, we advise you to use the following functions in combination with the <code>test</code> attribute: </p>
<div class="table">
<table>
<tr>
<th>Function</th>
<th>Description</th>
</tr>
<tr>
<td>
<a href="../functions/property.exists(System.String).html">property::exists()</a>
</td>
<td>Checks whether the specified property exists.</td>
</tr>
<tr>
<td>
<a href="../functions/target.exists(System.String).html">target::exists()</a>
</td>
<td>Checks whether the specified target exists.</td>
</tr>
</table>
</div>
<h3>Parameters</h3>
<div class="table">
<table>
<tr>
<th>Attribute</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
<th style="text-align: center;">Required</th>
</tr>
<tr>
<td valign="top">comparefile</td>
<td style="text-align: center;">string</td>
<td>
<i>Deprecated.</i> The file to check against for the uptodate file. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">propertyexists</td>
<td style="text-align: center;">string</td>
<td>
<i>Deprecated.</i> Used to test whether a property exists. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">propertytrue</td>
<td style="text-align: center;">string</td>
<td>
<i>Deprecated.</i> Used to test whether a property is true. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">targetexists</td>
<td style="text-align: center;">string</td>
<td>
<i>Deprecated.</i> Used to test whether a target exists. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">test</td>
<td style="text-align: center;">string</td>
<td> Used to test arbitrary boolean expression. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">uptodatefile</td>
<td style="text-align: center;">string</td>
<td>
<i>Deprecated.</i> The file to compare if uptodate. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">failonerror</td>
<td style="text-align: center;">bool</td>
<td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">if</td>
<td style="text-align: center;">bool</td>
<td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">unless</td>
<td style="text-align: center;">bool</td>
<td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td>
<td style="text-align: center;">False</td>
</tr>
<tr>
<td valign="top">verbose</td>
<td style="text-align: center;">bool</td>
<td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td>
<td style="text-align: center;">False</td>
</tr>
</table>
</div>
<h3>Nested Elements:</h3>
<!--Element-->
<h4>
<a id="comparefiles">
</a>
&lt;<a href="../types/fileset.html">comparefiles</a>&gt;
</h4>
<div class="nested-element">
<i>Deprecated.</i> The <a href="../types/fileset.html">&lt;fileset&gt;</a> that contains the comparison files for the <code>uptodatefile</code>(s) check. <p /></div>
<h4>
<a id="comparefiles">
</a>
&lt;/<a href="../types/fileset.html">comparefiles</a>&gt;
</h4>
<!--Element-->
<h4>
<a id="uptodatefiles">
</a>
&lt;<a href="../types/fileset.html">uptodatefiles</a>&gt;
</h4>
<div class="nested-element">
<i>Deprecated.</i> The <a href="../types/fileset.html">&lt;fileset&gt;</a> that contains the uptodate files for the <code>comparefile</code>(s) check. <p /></div>
<h4>
<a id="uptodatefiles">
</a>
&lt;/<a href="../types/fileset.html">uptodatefiles</a>&gt;
</h4>
<h3>Examples</h3>
<ul class="examples">
<li>
<p>Tests the value of a property using expressions.</p>
<pre class="code">
&lt;if test="${build.configuration=='release'}"&gt;
&lt;echo&gt;Build release configuration&lt;/echo&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>Tests the the output of a function.</p>
<pre class="code">
&lt;if test="${not file::exists(filename) or file::get-length(filename) = 0}"&gt;
&lt;echo message="The version file ${filename} doesn't exist or is empty!" /&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>
<code>(Deprecated)</code> Check that a target exists.</p>
<pre class="code">
&lt;target name="myTarget" /&gt;
&lt;if targetexists="myTarget"&gt;
&lt;echo message="myTarget exists" /&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>
<code>(Deprecated)</code> Check existence of a property.</p>
<pre class="code">
&lt;if propertyexists="myProp"&gt;
&lt;echo message="myProp Exists. Value='${myProp}'" /&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>
<code>(Deprecated)</code> Check that a property value is true.</p>
<pre class="code">
&lt;if propertytrue="myProp"&gt;
&lt;echo message="myProp is true. Value='${myProp}'" /&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>
<code>(Deprecated)</code> Check that a property exists and is <b>true</b> (uses multiple conditions). </p>
<pre class="code">
&lt;if propertyexists="myProp" propertytrue="myProp"&gt;
&lt;echo message="myProp is '${myProp}'" /&gt;
&lt;/if&gt;
</pre>
<p>which is the same as</p>
<pre class="code">
&lt;if propertyexists="myProp"&gt;
&lt;if propertytrue="myProp"&gt;
&lt;echo message="myProp is '${myProp}'" /&gt;
&lt;/if&gt;
&lt;/if&gt;
</pre>
</li>
<li>
<p>
<code>(Deprecated)</code> Check file dates. If <code>myfile.dll</code> is uptodate, then do stuff. </p>
<pre class="code">
&lt;if uptodatefile="myfile.dll" comparefile="myfile.cs"&gt;
&lt;echo message="myfile.dll is newer/same-date as myfile.cs" /&gt;
&lt;/if&gt;
</pre>
<p>or</p>
<pre class="code">
&lt;if uptodatefile="myfile.dll"&gt;
&lt;comparefiles&gt;
&lt;include name="*.cs" /&gt;
&lt;/comparefiles&gt;
&lt;echo message="myfile.dll is newer/same-date as myfile.cs" /&gt;
&lt;/if&gt;
</pre>
<p>or</p>
<pre class="code">
&lt;if&gt;
&lt;uptodatefiles&gt;
&lt;include name="myfile.dll" /&gt;
&lt;/uptodatefiles&gt;
&lt;comparefiles&gt;
&lt;include name="*.cs" /&gt;
&lt;/comparefiles&gt;
&lt;echo message="myfile.dll is newer/same-date as myfile.cs" /&gt;
&lt;/if&gt;
</pre>
</li>
</ul>
<h3>Requirements</h3>
<div style="margin-left: 20px;">
<b>Assembly:</b> NAnt.Core (0.91.4312.0)
</div>
</body>
</html>