= !IssBuilder = Механизм предназначен для реализации в версии [milestone:0.2]. '''В процессе проектирования'''. Более старые версии механизма: * [wiki:IssBuilderMechanism_m0_1 0.1]. ---- * Запускается с параметрами. * В параметрах указывается имя проекта, имя iss-заготовки. * Прога открывает конфиг проекта (файл *.sconf), смотрит там важные для себя параметры вроде типа проекта, затем ковыряется в других понадобившихся файлов и добывает нужную инфу вроде нумера версии. * Генерит имя выходного *.iss файла. * Открывает указанную в параметрах iss-заготовку из .\ . Берет оттуда всю необходимую инфу, затем сканит и добавляет файлы для инсталлера в инфу объекта класса (работающего с iss) - попросту добавляет файлы в инсталлер, при необходимости - с учетом деления на языковые компоненты. * Генерит выходной iss скрипт с правильным именем (по номеру версии и имени проекта). Iss-ы генерятся для всех запрошенных через *.sconf вариантов пакетов, в т.ч языковых. * При необходимости информация о локалях берется либо из "вшитых в программу", статичных конфигов, либо из *.sconf-файла - соотв. в зависимости от настроек в этом самом *.sconf. * Для добавленных файлов создает *.flist файл (имя соответствует полной версии дистрибутива), в список добавляет ПОЛНЫЙ список ВСЕХ файлов которые есть в данной версией с их чексуммой, при необходимости - с делением на группы по языковым компонентам. * Если требовалось в *.sconf - то также добавляет в кеш папку с именем версии и скидывает туда все файлы данной конкретной версии. * После всего этого - запускает компилляцию *.iss-а или *.iss-ов если их много. Все %).