<!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.CallTask--> <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><call> 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="->" src="../images/arrow.gif" /> <a href="../index.html">Help</a> <img alt="->" src="../images/arrow.gif" /> <a href="../tasks/index.html">Task Reference</a> <img alt="->" src="../images/arrow.gif" /> <call></td> <td class="NavBar-Cell" align="right"> v0.91</td> </tr> </table> <h1><call></h1> <p> Calls a NAnt target in the current project. </p> <p> When the <a href="../tasks/call.html"><call></a> task is used to execute a target, both that target and all its dependent targets will be re-executed. </p> <p> To avoid dependent targets from being executed more than once, two options are available: </p> <ul style="list-style-type: disc;"> <li> Add an "unless" attribute with value "${<a href="../functions/target.has-executed.html">target::has-executed</a>('<code><target name></code>')}" to the dependent targets. </li> <li> Set the <code>cascade</code> attribute on the <a href="../tasks/call.html"><call></a> task to <b>false</b> (<code>recommended</code>). </li> </ul> <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" class="required">target</td> <td style="text-align: center;">string</td> <td> NAnt target to call. </td> <td style="text-align: center;">True</td> </tr> <tr> <td valign="top">cascade</td> <td style="text-align: center;">bool</td> <td> Execute the specified targets dependencies -- even if they have been previously executed. The default is <b>true</b>. </td> <td style="text-align: center;">False</td> </tr> <tr> <td valign="top">force</td> <td style="text-align: center;">bool</td> <td> <i>Deprecated.</i> Force an execute even if the target has already been executed. The default is <b>false</b>. </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>Examples</h3> <ul class="examples"> <li> <p> Call the target "build". </p> <pre class="code"> <call target="build" /> </pre> </li> <li> <p> This shows how a project could 'compile' a debug and release build using a common compile target. </p> <pre class="code"> <project default="build"> <property name="debug" value="false" /> <target name="init"> <echo message="initializing" /> </target> <target name="compile" depends="init"> <echo message="compiling with debug = ${debug}" /> </target> <target name="build"> <property name="debug" value="false" /> <call target="compile" /> <property name="debug" value="true" /> <call target="compile" /> </target> </project> </pre> <p> The <code>cascade</code> parameter of the <a href="../tasks/call.html"><call></a> task defaults to <b>true</b>, causing the "init" target to be executed for both the "debug" and "release" build. </p> <p> This results in the following build log: </p> <pre class="code">build: init: [echo] initializing compile: [echo] compiling with debug = false init: [echo] initializing compile: [echo] compiling with debug = true BUILD SUCCEEDED </pre> <p> If the "init" should only be executed once, set the <code>cascade</code> attribute of the <a href="../tasks/call.html"><call></a> task to <b>false</b>. </p> <p> The build log would then look like this: </p> <pre class="code">build: init: [echo] initializing compile: [echo] compiling with debug = false compile: [echo] compiling with debug = true BUILD SUCCEEDED </pre> </li> </ul> <h3>Requirements</h3> <div style="margin-left: 20px;"> <b>Assembly:</b> NAnt.Core (0.91.4312.0) </div> </body> </html>