-
Notifications
You must be signed in to change notification settings - Fork 14
Want. Описание с сайта delphiplus.org
Текст взят c сайта delphiplus.org
© 2006 [email protected]
WANT – Open Source система для автоматизированной сборки, тестирования и упаковки проектов, написанных на Borland Delphi (замена make). Система WANT сама написана на Delphi и является аналогом Jakarta Ant для Java.
WANT позволяет выполнять следующие задачи:
- сборка проекта
- создание/копирование/удаление каталогов и файлов
- архивация файлов
- операции с CVS
- unit-тестирование
- операции с ini-файлами
- запуск приложений
Проект состоит из задач (targets), каждая из которых имеет свое имя и может зависеть от других задач, в таком случае сначала выполняются задачи, необходимые для ее завершения.
Задачи запускаются на исполнение из командной строки:
want.exe <имя_задачи>
Рассмотрим пример использования WANT.
Создайте папку, в ней должны располагаться файлы want.exe и want.xml, проект Delphi с именем Test положите в папку source.
Что же содержит файл описания процесса сборки - want.xml?
Первый тэг – описание проекта и его свойств, корневой папки проекта (basedir) и задачи по умолчанию (default).
<project name="test" basedir="." default="help">
описываем свойство "дата сборки проекта"
<tstamp> <format property="date.build" pattern="yyyy_mm_dd" /> </tstamp>
Перечисляем необходимые свойства. Все свойства задаются в формате имя (name) и значение (value). Можно использовать значения свойств, определенных выше, для это существует формат записи ${имя_свойства}
<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"> <echo message="this builds test" /> </target>
Еще одна задача – создание каталогов (mkdir), ее параметр – имя создаваемого каталога (dir).
<target name="prepare"> <mkdir dir="${dist.dir}" /> <mkdir dir="${tmp}" /> </target>
Задача компиляции проекта (compile) зависит (depends) от задачи prepare. Порядок исполнения – сначала prepare, потом compile. Задача компиляции включает в себя два этапа: dcc (консольный компилятор) и exec (запуск приложения).
У dcc следующие параметры:
- Basedir – каталог, относительно которого будет осуществляться компиляция
- Source – имя проекта Delphi
- dcuoutput – каталог для dcu файлов
- warnings – отображение предупреждений компилятора
- Basedir – каталог в котором будет запущена программа
- Executable – имя программы
- Arg – аргументы
<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>
Задачи формирования архивов с исходниками проекта и скомпилированного приложения:
- Delete – удаление файлов
- Zip – создание архива. Файлы в него можно добавлять (include) и игнорировать (exclude)
<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="all" depends="dist,dist_src"> </target> </project>
Сохраняем файл и в консоли набираем want all. В результате должны выполнится все перечисленные задачи (см. рис).
Image:Want-work.pngВ случае ошибки при выполнении любой из задач выводится сообщение об ошибке и сборка прекращается.
Image:Want-error.pngОстальные действия в WANT описываются аналогично.
На данный момент документации по WANT немного, поэтому лучшим вариантом будет изучение исходников с sourceforge, а также документации на Ant.
Copyright© 2006 [email protected]
Специально для Delphi Plus