Публикации Lazarus

Использование сборщика проектов

24.02.2009
Лагунов А.А.

В составе IDE Lazarus идут дополнительные полезные утилиты. Одна из них — утилита командной строки, предназначенная для удобства компиляции и сборки проектов (программ, пакетов), разработанных с помощью Lazarus.

Она устанавливается автоматически при установке самой IDE (или собирается из исходников — если IDE собирают из исходных текстов). Находится обычно рядом с исполняемым файлом самой IDE и называется lazbuild в unix-подобных и lazbuild.exe в windows системах.

Формат вызова:

lazbuild [options] <project or package-filename>

Данная утилита предназначена для удобной сборки готовых проектов, написанных в Lazarus без запуска самой IDE. Возможность существования этой утилиты обеспечивается тем фактом, что в файле проекта (*.lpi) или пакета (*.lpk) находится информация о зависимостях от других библиотек, которые необходимы для сборки нашего проекта или пакета. Также в файлах проекта находится информация обо всех файлах, которые входят в проект и месте их нахождения.

Основываясь на этих данных, lazbuild правильно формирует строку запуска компилятора FreePascal (ppc386 или тот, что вы у себя используете), с передачей ему всех путей поиска библиотек (как пакетов по зависимостям, так и модулей самого проекта).

Фактически в большинстве случаев сборка проекта сводится к вызову lazbuild с передачей через командную строку ему полного пути и имени файла пакета.

Я сам постоянно использую эту утилиту при пересборке IDE для компиляции пакетов. Простой командный файл со списком пакетов, которые мне необходимо устанавливать в IDE (пример bash-скрипта из linux-а):

laz_dir=/usr/local/share/lazarus
$laz_dir/lazbuild $laz_dir/components/uib/source/uiblaz.lpk
$laz_dir/lazbuild $laz_dir/components/printers/printer4lazarus.lpk
$laz_dir/lazbuild $laz_dir/components/printers/design/printers4lazide.lpk
$laz_dir/lazbuild $laz_dir/components/rx/rx.lpk
$laz_dir/lazbuild $laz_dir/components/rxnew/rxnew.lpk
$laz_dir/lazbuild $laz_dir/components/lazreport/source/lazreport.lpk
$laz_dir/lazbuild $laz_dir/components/FBDataSet/fbdemofpc.lpk
$laz_dir/lazbuild $laz_dir/components/FBDataSet/dcl_fb_id_dataset.lpk
#... и так далее перечисление пакетов
#Скомпилим LazDE
$laz_dir/lazbuild $laz_dir/doceditor/lazde.lpr
#... заодно компилю необходимые утилиты, которые не собираются сами.

Таким образом, lazbuild полностью освобождает программиста от заботы по написанию make-файлов для сборки его программы.

Дополнительно поддерживаются параметры командной строки (копия вывода на консоль программы после запуска с ключом —help и комментариями, операционная система — Fedora Linux 10):

Параметр Описание Пояснение
-B or --build-all собрать все файлы проекта/пакета/IDE принудительная компиляция всех модулей, которые входят в проект
-r or --recursive использовать флаг сборки (-B) также для зависимостей принудительная компиляция всех модулей, которые входят в проект и всех используемых библиотек, для которых есть исходные тексты
-d or --skip-dependencies не собирать зависимости при сборке проекта или пакета не перекомпилировать другие библиотеки по зависимостям
-build-ide=<options> собрать IDE с пакетами  
-v or --version показать версию и выйти  
--primary-config-path=<path>
or
--pcp=<path>
первичный каталог настроек, где Lazarus хранит свои файлы настроек по умолчанию - /home/$USER/.lazarus
--secondary-config-path=<path>
or
--scp=<path>
вторичный каталог настроек, где Lazarus ищет шаблоны файлов настроек по умолчанию - /etc/lazarus
--operating-system=<operating-system>
or
--os=<operating-system>
переопределить операционную систему проекта, например, win32 linux значение по умолчанию: linux
--widgetset=<widgetset>
or
--ws=<widgetset>
переопределить библиотеку виджетов проекта, например, gtk gtk2 qt win32 carbon значение по умолчанию: gtk2
--cpu=<cpu> переопределить целевое семейство процессоров проекта, например, i386 x86_64 powerpc powerpc_64 и т.д. значение по умолчанию: i386
--compiler=<ppcXXX> переопределить компилятор по умолчанию, например, ppc386 ppcx64 ppcppc и т.д. значение по умолчанию хранится в environmentoptions.xml
--language= переопределить язык (например, --language=de) см. каталог languages, чтобы узнать возможные значения
Актуальные версии
FPC3.2.2release
Lazarus3.2release
MSE5.10.0release
fpGUI1.4.1release
links