<?xml version="1.0"?>

<!--
	description:

		"ve Tasks"

	library: "Gobo Eiffel Ant"
	copyright: "Copyright (c) 2002, Sven Ehrke and others"
	license: "Eiffel Forum License v2 (see forum.txt)"
	date: "$Date: 2005/07/07 13:34:12 $"
	revision: "$Revision: 1.8 $"
-->

<chapter xmlns="http://www.gobosoft.com/eiffel/gobo/documentation" id="ve_task">
<chapterinfo>
	<copyright>
		<year>2002-2005</year>
		<holder>Sven Ehrke</holder>
	</copyright>
	<author>
		<firstname>Sven</firstname><surname>Ehrke</surname>
	</author>
	<email>ericb@gobosoft.com</email>
	<date>7 July 2005</date>
</chapterinfo>

	<title>ve</title>

	<section id="ve_description">
		<title>Description</title>
		<para>
			Invoke Object Tools's Visual Eiffel Compiler.
		</para>
	</section>

	<section id="ve_parameters">
		<title>Parameters</title>

		<variablelist>
			<varlistentry>
				<term>esd</term>
				<listitem>
					<para><emphasis>Description: </emphasis>Name of esd file</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>Valid filename pointing to existing file</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>empty string</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>xace</term>
				<listitem>
					<para><emphasis>Description: </emphasis>Name of Xace file</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>Valid filename pointing to existing file</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>empty string</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>recursive</term>
				<listitem>
					<para><emphasis>Description: </emphasis>recursive</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>Boolean (true|false)</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>false</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>tune</term>
				<listitem>
					<para><emphasis>Description: </emphasis>tune</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>Boolean (true|false)</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>false</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>level</term>
				<listitem>
					<para><emphasis>Description: </emphasis>level</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>large|huge</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>-</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>clean</term>
				<listitem>
					<para><emphasis>Description: </emphasis>clean</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>valid system name</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>empty string</para>
				</listitem>
			</varlistentry>

			<varlistentry>
				<term>exit_code_variable</term>
				<listitem>
					<para><emphasis>Description: </emphasis>Name of variable holding the compiler process's return code after it's run
					</para>
				</listitem>
				<listitem>
					<para><emphasis>Domain: </emphasis>Intgeger (usually 0 for OK, and any other number for not OK)</para>
				</listitem>
				<listitem>
					<para><emphasis>Default: </emphasis>`Void' (no variable is set if attribute is not specified)</para>
				</listitem>
			</varlistentry>

		</variablelist>

		<para>
			Note: In mode 'clean' the directory 'eCluster' and the files Result.out', 'vec.xcp' are
			deleted as well if they exist. If 'recursive' is set to 'true' 'clean' is applied to each
			subdirectory recursively. In mode tune the Eiffel System is tuned with Visual Eiffel's tuner.
			Visual Eiffel 5.0 uses Xace files. When both 'esd' and 'xace' attributes are specified,
			only 'esd' is taken into account.
		</para>

	</section>

	<section id="ve_specification">
		<title>RNG Specification</title>

		<programlisting><![CDATA[
  <define name="ve">
    <element name="ve">
      <ref name="dir_if_unless"/>
      <choice>
        <attribute name="esd"/>
        <attribute name="xace"/>
        <group>
          <attribute name="clean"/>
          <optional>
            <attribute name="recursive"/>
          </optional>
        </group>
        <group>
          <attribute name="tune"/>
          <optional>
            <attribute name="level">
              <!-- runtime evaluation
              <choice>
                <value>large</value>
                <value>huge</value>
              </choice>
              -->
            </attribute>
          </optional>
        </group>
      </choice>
    </element>
  </define>
]]>
		</programlisting>
	</section>

	<section id="ve_examples">
		<title>Examples</title>

		<programlisting><![CDATA[
  <ve esd="compile_ve.esd"/>

  <ve xace="compile_ve.xace"/>

  <ve clean="kernel" recursive="true"/>

  <ve tune="${system}${exe}" level="${vetuner}" if="${vetuner}"/>
]]>
		</programlisting>
	</section>

</chapter>
