3 build_distrib
Дмитрий Кононов edited this page 1 year ago

Сборка дистрибутива

Использование Composer

Сборка дистрибутива может быть автоматизирована с помощью утилиты, специально разработанной для данного проекта - Composer .

Командная строка вызова данной утилиты должна содержать последовательно 3 параметра:

  • конфигурационный файл
  • каталог проекта
  • каталог результата (в который будет помещено результирующее дерево файлов дистрибутива)

Пример:

C:\>set TC_DEBUG_BUILD=false
C:\>set CYBERPLAT_BUILD=false
C:\>cd C:\Projects\CyberplatOpenSource
C:\>tools\Composer\msvc\Release\Composer.exe 3.0\scripts\runtimes\terminal_ru.xml 3.0 3.0\ReadySoftware

В результате в каталоге C:\Projects\CyberplatOpenSource\3.0\ReadySoftware\ будет сформирован необходимый для конфигурации terminal_ru набор файлов в необходимой для работы ПО структуре каталогов.

Переменная среды CYBERPLAT_BUILD должна быть установлена в false чтобы отсутствие некоторых неопубликованных (закрытых) модулей не являлось критической ошибкой. Переменная среды TC_DEBUG_BUILD может принимать значения true или false и означает отладочную сборку (копируются .pdb файлы, для плагинов выставляется флаг отладки).

Используемые в Киберплат конфигурации дистрибутивов находятся в каталоге 3.0\scripts\runtimes. Вы можете разработать свои собственные файлы конфигураций.

Формат файла конфигурации дистрибутива

Схема формата файла конфигурации находится в 3.0\doc\Schemas\composer.xsd. Основная идея файлов конфигурации следующая: конфигурация описывает действия, необходимые для формирования дерева файлов. На данный момент существует 3 основных действия: копирование файла, копирование каталога и установка значения в .ini файле. Действия могут содержать булевый предикат на javascript (поддерживается весь функционал QtScript), при ложном значении которого действие пропускается. Для описания различных модификаций дистрибутивов общие части дистрибутива можно выделять в отдельные конфигурации. Для этого реализовано наследование конфигураций. В этом случае обрабатывается цепочка конфигураций - от родителя к потомку.

Если исходный путь не абсолютный, то считается, что он относителен каталога проекта (второй параметр командной строки).

Если результирующий путь не абсолютный, то считается, что он относителен каталога результата (третий параметр командной строки).

Если target-путь пустой, то имеется в виду корень каталога результата.

Пути могут использовать переменные среды в формате {ИМЯ}. Например:

<directory source="{BUILD_HOME}/Logo/ru" target="interface/logo" recursive="true"/>

Предикаты могут использовать переменные среды в формате {ИМЯ}. Например:

<file if="{TC_DEBUG_BUILD}" source="src/apps/Updater/build/Release/updater.pdb" target="updater.pdb"/>