! | Данная информация предназначена только только для IT-специалистов по системной интеграции модулей БИОСОФТ-М. (см. Руководства пользователя к программным продуктам) |
Декларация проектов и необходимых им файлов/ресурсов отделена от спецификаций сборки модулей, скомпилированных из этих проектов, и собранных в разные инсталляционные пакеты.
Все инсталлируемые модули должны быть декларированы как проекты и их атрибуты и атрибуты инсталляционных таргетов, в которые они входят, должны быть корректно согласованы. На это предусмотрена автоматическая верификация во избежание сборки нестабльных дистрибутивов.
DeclareProjects.h
DECLARE_PROJECT(IbpTest) PROJECT_ids(PERMANENT_TYPE_ID(I b p T), =) PROJECT_for(prototest, "IBP module for Biomonex") PROJECT_opp(app, AV, mon) PROJECT_mod(generic) INSTALL_exe(internal) DECLARE_PROJECT(Paradop) PROJECT_ids(PERMANENT_TYPE_ID(P d o p), =) PROJECT_for(enduser, "Asynchronous doppler device control") PROJECT_opp(app, VL, dop) PROJECT_mod(generic) INSTALL_exe(install) INSTALL_add(9, "DemoPlayback", "*.du*", ILM_Paradop_DemoDu) INSTALL_add(4, "DemoPlayback", "*.bin", ILM_Paradop_DemoBin) INSTALL_single("Firmware", "dig_32mH.bit", ILF_Paradop_BitDig32mh) INSTALL_single("Firmware", "dop3usb2__1_8.bit", ILF_Paradop_BitDop3218) INSTALL_single("Firmware", "dop_usb.bit", ILF_Paradop_BitDopUsb)
Должен содержать все активные таргеты. Тогда они доступны для выбора и верифицируются.
BEGIN_INSTALL_TARGET(TargetName, purpose) #include " ... /Install_subset_Universal.h" #include " ... /Install_subset_Xxxxxx.h" INCLUDE_PROJECT(exe, MyMainProject) INCLUDE_PROJECT(dll, SomeOtherModule) ... END_INSTALL_TARGET()
Декларирует профили наборов взаимосвязанных между собой модулей для включения в разные таргеты. Минимизирует дублирование.
Вложенные субсеты запрещены.
BEGIN_INSTALL_SUBSET(SubsetName) INCLUDE_PROJECT(dll, Xxxx) INCLUDE_PROJECT(dll, Yyyy) INCLUDE_PROJECT(exe, Zzzz) ... END_INSTALL_SUBSET()
Те же правила для INCLUDE_PROJECT() действуют что и при включении модулей в таргет напрямую.
Обязательно докомпиляция Biins где все основные проверки. Стартовые регресс тесты проверяют дополнительно консистентность того что не проверяет статически компилятор.
Возможно нужна модификация Install_all_targets.h при некоторых локальных изменениях в хидерах таргетов.
Сильные изменения могут потребовать полной перекомпиляции всего.
Многие проверки выводят в ASSERT в #define декларации чтобы прямо при сбое указывать в нужную строку где ошибка.
Использование DEFINE_CUSTOM_INSTALL и INSTALL_REDIST_DLL ограничено системными задачами и общее для всех таргетов.