geant PreviousNext

Description

Sometimes when projects get large it is useful to make build scripts more modular. It would be useful for example to call subtargets in a procedural manner and it would be useful to use more than one build script since the build script usually grows with the size of the project. With the geant task you can accomplish this.

Parameters

arguments
Description: Comma separated list of values to be passed as arguments to the target to be called. The number of values must match the number of formal arguments of that target. The sequence is important: the first value will be used for the first actual parameter, the second as the second and so on. This is the so called terse way of argument passing.

Domain: Comma separated list of values

Default: -

fork
Description: Should a new operation system process be spawned for call?

When not specified the following default behavior applies: If parameter 'file' has been specified the default value for 'fork' is 'true'. If no parameter 'file' has been specified the default value for 'fork' is 'false',

Domain: true|false

Default: see description

file
Description: Name of build file to invoke

Domain: Name of existing file

Default: -

target
Description: Name of target to invoke in current build file respectively in buildfile specified through attribute file if provided.

Domain: existing target

Default: -

exit_code_variable
Description: Name of variable holding the execution's return code

Domain: Integer (usually 0 for OK, and any other number for not OK)

Default: `Void' (no variable is set if attribute is not specified)

reuse_variables
Description: Should variables defined in current build file be available in invoked build file? Note: This attribute is only evaluated if attribute file if provided.

Domain: true|false

Default: false

Parameters specified as nested elements

argument
Description: Element representing a actual argument for the target to be called. The name of the matching formal argument is specified by the attribute 'name'. The value to be used is specified through the attribute 'value'. The names of the arguments and the number of arguments must match the formal ones of the target to be called.

Domain: -

Default: -

RNG Specification

<define name="geant">
  <element name="geant">
    <ref name="dir_if_unless"/>
    <optional>
      <choice>
        <attribute name="arguments"/>
        <zeroOrMore>
          <element name="argument">
            <attribute name="name"/>
            <attribute name="value"/>
          </element>
	    </zeroOrMore>
      </choice>
    </optional>
    <optional>
      <attribute name="fork">
        <!-- runtime evaluation
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
        -->
      </attribute>
    </optional>
    <optional>
      <attribute name="exit_code_variable"/>
    </optional>
    <choice>
      <attribute name="target"/>
      <group>
        <attribute name="file"/>
          <optional>
            <attribute name="reuse_variables">
              <!-- runtime evaluation
              <choice>
                <value>true</value>
                <value>false</value>
              </choice>
              -->
            </attribute>
          </optional>
          <optional>
            <ref name="fileset"/>
          </optional>
        </group>
        <group>
          <attribute name="file"/>
          <attribute name="target"/>
          <optional>
            <attribute name="reuse_variables">
              <!-- runtime evaluation
              <choice>
                <value>true</value>
                <value>false</value>
              </choice>
              -->
            </attribute>
          </optional>
          <optional>
            <ref name="fileset"/>
          </optional>
        </group>
      <ref name="fileset"/>
      </choice>
  </element>
</define>

		

Examples

  <geant file="build2.eant"/>

  <geant file="build2.eant" target="compile"/>

  <geant file="build2.eant" target="compile" reuse_variables="true"/>

  <geant target="compile"/>

		

Copyright 2002-2005, Sven Ehrke
mailto:ericb@gobosoft.com
http://www.gobosoft.com
Last Updated: 7 July 2005
HomeTocPreviousNext