© 2006 Игорь Фомин
WANT – Open Source система для автоматизированной сборки, тестирования и упаковки проектов, написанных на Borland Delphi (замена make). Система WANT сама написана на Delphi и является аналогом Jakarta Ant для Java.
WANT позволяет выполнять следующие задачи:
Описание процесса сборки хранится в файле want.xml.
Проект состоит из задач (targets), каждая из которых имеет свое имя и может зависеть от других задач, в таком случае сначала выполняются задачи, необходимые для ее завершения.
Задачи запускаются на исполнение из командной строки:
want.exe <имя_задачи>
Рассмотрим пример использования WANT.
Создайте папку, в ней должны располагаться файлы want.exe и want.xml, проект Delphi с именем Test положите в папку source.
Что же содержит файл описания процесса сборки - want.xml?
Первый тэг – описание проекта и его свойств, корневой папки проекта (basedir) и задачи по умолчанию (default).
<project name="test"описываем свойство "дата сборки проекта"
basedir="."
default="help">
<tstamp>Перечисляем необходимые свойства. Все свойства задаются в формате имя (name) и значение (value). Можно использовать значения свойств, определенных выше, для это существует формат записи ${имя_свойства}
<format property="date.build" pattern="yyyy_mm_dd" />
</tstamp>
<property name="src" value="${basedir}/source" />Описываем задачу. Внутри перечисляем, что нужно выполнить. Здесь осуществляется только вывод текста на экран.
<property name="tmp" value="${basedir}/tmp" />
<property name="dist.dir" value="${basedir}/dist" />
<property name="dist.name" value="${dist.dir}/test_${date.build}.zip" />
<property name="dist.src.name" value="${dist.dir}/test_src_${date.build}.zip" />
<target name="help">Еще одна задача – создание каталогов (mkdir), ее параметр – имя создаваемого каталога (dir).
<echo message="this builds test" />
</target>
<target name="prepare">
<mkdir dir="${dist.dir}" />
<mkdir dir="${tmp}" />
</target>
Задача компиляции проекта (compile) зависит (depends) от задачи prepare. Порядок исполнения – сначала prepare, потом compile. Задача компиляции включает в себя два этапа: dcc (консольный компилятор) и exec (запуск приложения).
У dcc следующие параметры:
Параметры exec:
<target name="compile" depends="prepare">
<dcc basedir="${src}" source="test.dpr">
<dcuoutput path="${tmp}" />
<warnings value="True" />
</dcc>
<exec basedir="${src}" defaultfilters="true" executable="upx.exe">
<arg value="--best" />
<arg value="-q" />
<arg value="test.exe" />
</exec>
</target>
Задачи формирования архивов с исходниками проекта и скомпилированного приложения:
<target name="dist_src" depends="prepare">
<delete file="${dist.src.name}" />
<zip zipfile="${dist.src.name}">
<include name="${src}/*.pas" />
<include name="${src}/*.dfm" />
<include name="${src}/*.dpr" />
<include name="${src}/*.dof" />
<include name="${src}/*.res" />
<include name="${src}/*.cfg" />
<include name="${src}/*.todo" />
<include name="want.xml" />
</zip>
</target>
<target name="dist" depends="prepare,compile">
<delete file="${dist.name}" />
<zip zipfile="${dist.name}">
<include name="${src}/*.exe" />
<include name="${src}/*.mdb" />
<include name="${src}/*.dbf" />
<include name="${src}/*.fr3" />
<include name="${src}/*.ini" />
</zip>
</target>
<target name="all" depends="dist,dist_src">
</target>
</project>
Сохраняем файл и в консоли набираем want all. В результате должны выполнится все перечисленные задачи (см. рис).

В случае ошибки при выполнении любой из задач выводится сообщение об ошибке и сборка прекращается.

Остальные действия в WANT описываются аналогично.
На данный момент документации по WANT немного, поэтому лучшим вариантом будет изучение исходников с sourceforge, а также документации на Ant.
Copyright© 2006 Игорь Фомин
Специально для Delphi Plus
Пожалуйста, оцените статью