ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peter reilly <peter.rei...@corvil.com>
Subject [new tasks] presetdef and macrodef
Date Thu, 14 Aug 2003 09:20:58 GMT
Hi,
I have written a couple of tasks to enable definition of new tasks
in ant.

<presetdef> (formally known as extendtype)
  this defines a new task or type based on a current ant task or type, with
  attributes or elements preset.

  example useage:
  <presetdef name="my.javac">
       <javac debug="${debug}" deprecation="${deprecation}"/>
  </presetdef>

  <my.javac> may now be used as a task in the same way as <javac>
  but the attribute debug and deprecation will be preset.


<macrodef>
  this defines a new task in the same way as <scriptdef> except it
  uses a <sequential> as a defintion of the task. The <macrodef>
  task has nested elements - param and element to allow the
  user to specify attributes and elements of the new task. These
  get substituted into the <sequential> when the new task is
  run.

 example: (from a current project)
     <macrodef name="call-cc">
        <param name="target"/>
        <param name="link"/>
        <param name="target.dir"/>
        <element name="cc-elements"/>
        <sequential>
            <mkdir dir="${obj.dir}/${target}"/>
            <mkdir dir="${target.dir}"/>
            <cc link="${link}" objdir="${obj.dir}/${target}"
                outfile="${target.dir}/${target}">
                <compiler refid="compiler.options"/>
                <cc-elements/>
            </cc>
        </sequential>
    </macrodef>

    <macrodef name="compile-exec">
        <param name="program"/>
        <element name="cc-files"/>
        <sequential>
            <call-cc target="${program}" link="executable"
                     target.dir="${build.bin.dir}">
                <cc-elements>
                    <includepath location="${gen.dir}"/>
                    <includepath location="test"/>
                    <cc-files/>
                    <linker refid="linker-libs"/>
                </cc-elements>
            </call-cc>
        </sequential>
    </macrodef>

     <compile-exec program="unittests">
            <cc-files>
                <fileset dir="test/unittest" includes = "**/*.cpp"/>
                <fileset dir="${gen.dir}" includes = "*.cpp"/>
            </cc-files>
      </compile-exec>

Will I place these tasks in ant or ant-contrib ?

Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message