OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 22 Октябрь, 2014 13:58 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Приведу ради примера инструкцию по сборке клиентской части нашей информационной системы. Видимо, нужно сперва прокомментировать, отчего всё так устроено. Так заведено, что ядро ББ лежит в одном каталоге, открытые компоненты в другом, а подсистемы информсистемы в третьем. Так легче контролировать. Но исторически сложилось, что в каталог ядра ББ попали некоторые другие открытые компоненты и в таком виде был настроен обновлятор. Поэтому в инструкции некоторые компоненты кладутся в bb.open, а другие в папку ББ.

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

Хочу заметить, что отсутствие автоматизации комплектации может являться непреодолимой преградой для начинающих. Ибо это очень муторное дело для больших комплектов. Хотя и разовое (прохождение этой инструкции занимает минут 10).

Итак.

Процедура развёртывания и компиляции

• Скачать эталон BlackBox: http://blackboxframework.org/stable/SetupBlackBox16.exe и установить программу в каталог c:\dev1\BlackBox (можно сразу указать при установке, либо потом скопировать все подкаталоги в целевой каталог c:\dev1\BlackBox).
• Скачать репозиторий ИСМ ИРО: hg clone https://remote_rep c:\dev1\iro
• Скачать необходимые компоненты:
hg clone https://bitbucket.org/akastargazer/bb.open c:\dev1\bb.open
hg clone https://bitbucket.org/oberoncore/ypk c:\dev1\bb.open\ypk
hg clone https://bitbucket.org/oberoncore/lists c:\dev1\BlackBox\Lists
hg clone https://bitbucket.org/petryxa/msg c:\dev1\bb.open\Msg
hg clone https://bitbucket.org/oberoncore/yson c:\dev1\BlackBox\YSon
hg clone https://bitbucket.org/oberoncore/odf c:\dev1\BlackBox\Odf
hg clone https://bitbucket.org/petryxa/mysql5 c:\dev1\bb.open\Mysql5
hg clone https://bitbucket.org/oberoncore/xmpp c:\dev1\bb.open\Xmpp
http://oberoncore.ru/_media/bbcc/subs/s ... strings.7z (распаковать в c:\dev1\BlackBox\)
http://oberoncore.ru/_media/bbcc/subs/abf/abf.7z (распаковать в c:\dev1\BlackBox\)
https://bitbucket.org/oberoncore/xmlcor ... efault.zip (в архиве каталог Xmlcore распаковать в c:\dev1\BlackBox\)
https://bitbucket.org/oberoncore/interf ... efault.zip (в архиве каталог Win распаковать в c:\dev1\bb.open\)
http://oberoncore.ru/_media/bbcc/subs/zlib/zlib.7z (в архиве каталог Zlib распаковать в c:\dev1\BlackBox\)

Запустить BlackBox.exe, открыть этот документ в запущенном BlackBox и следовать дальнейшим инструкциям.

1) Компиляция базовых подсистем.
Открыть Strings/Docu/Compile-List и скомпилировать подсистему Strings.
Открыть Lists/Docu/Compile-List и скомпилировать подсистему Lists.
Открыть Abf/Docu/Compile-List и скомпилировать подсистемы Abf, Abfhost.
Открыть YSon/Docu/Compile-List и скомпилировать подсистему YSon.
Открыть Zlib/Docu/Compile-List и скомпилировать подсистему Zlib.
Открыть Xmlcore/Docu/Compile-List и скомпилировать подсистему Xmlcore.
Открыть Odf/Docu/Compile-List и скомпилировать подсистему Odf.

2) Далее открыть BlackBox командой
C:\dev1\BlackBox\BlackBox.exe /USE C:\dev1\bb.open
и откомпилировать систему компиляции подсистем:
^Q DevCompiler.CompileThis ypkDetails ypkTaskService ypkTaskServiceHost ypkDevTool

3) Откомпилировать всё остальное
^Q DevCompiler.CompileThis StdDialog StdFolds HostMenus HostWindows StdMenuTool StdTabViews WinShell AbfTools
^Q ypkDevTool.CompileSubs- Odf Onto Report kia BSon Yson Sith Stern Xmlcore Controls Grid Db ypk Msg YForm Mysql5 JUapp JUdir JUemb JUhost JUmgr JUstd Wizard Unio Xmpp

4) Собрать пускач ББ для работы с "теневым" рабочим каталогом, чтобы можно было работать одновременно с Iro и с bb.open
^Q DevCompiler.CompileThis HostFiles
^Q DevLinker.Link BlackBox2.exe := Kernel$+ Files HostFiles StdLoader 1 Applogo.ico 2 Doclogo.ico 3 SFLogo.ico 4 CFLogo.ico 5 DtyLogo.ico 1 Move.cur 2 Copy.cur 3 Link.cur 4 Pick.cur 5 Stop.cur 6 Hand.cur 7 Table.cur
• Переместить BlackBox2.exe в папку c:\dev\BlackBox\
• Создать ярлык для запуска среды:
поле "Объект": C:\dev\BlackBox\BlackBox2.exe /SHADOW C:\dev\bb.open /USE C:\dev\iro /NOSCROLL
поле "Рабочая папка": C:\dev\BlackBox

Теперь необходимо открыть BlackBox в комплектации Iro и откомпилировать
^Q ypkDevTool.CompileSubs- Iro Irokpk Iroplan Iroreg Iroreps
Конфигурационный файл:
^Q DevCompiler.CompileThis Config

5) В каталог c:\dev1\BlackBox\ положить все необходимые библиотеки:
FreeImage.dll Взять из папки c:\dev1\BlackBox\Abhost\Lib\FreeImage.dll
libmysql.dll Скачать
Morpher.dll Скачать
mo_wrap.dll Скачать


Для формирования микро-обновлений потребуется собрать клиентский комплект.

Открыть ^Q JUmgrCmds.OpenThis Iro/Install/iro_win_ivan.jup
далее выбрать в меню Updater, Подготовить полный пакет, сохранить файл в каталог обновлений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 13:01 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Монументально :)
А ведь давно замечено, что у подсистем/компонентов нет никакой программной основы. Даже функция вычисления имени каталога/файла в модуле Kernel опирается на довольно простое правило, которое частично ошибочно на файловых системах с регистронезависимыми именами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 13:14 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Что подразумевается под "программной основой компонента\системы"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 15:23 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Ну, например, для модуля есть слово MODULE в языке. Для строк есть слово STRINGS в документации модуля Dialog. Для менюшек есть MENU. А для компонента/подсистемы - ничего нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 15:42 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ну это интересная тема, да. Мы уже имеем формализм модуля и неформальные концепции компонента и подсистемы. Как только мы формализуем новое понятие, скажем, Subsystem, как сразу придём к парадоксу Рассела. Можно ли объединять подсистемы и является ли такое объединение экземпляром Subsystem или нет? В каких отношениях состоит модуль и подсистема? А подсистема подсистем? Подсистема подсистем подсистем?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 16:14 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Подсистему к хаосу — это суррогат, а компонент доопределить следует.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 16:18 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Я - за. Хотя бы на уровне библиотеки, как Dialog.String.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Октябрь, 2014 19:11 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
http://www.inr.ac.ru/~info21/info/qtocop.htm
Видимо, слова компонент и подсистема относятся к разным областям знаний.
Подсистема, имхо, относится к организационной части процесса разработки (сюда же относятся ресурсы, версионность, документация).
В то же время компоненты относятся к той части, в которой происходит компиляция и линковка. При этом, получается, что работоспособность компонента не определяет даже компиляция. Компонент может не полностью компилироваться и работать (см. хосты под разные оси). А может полностью компилироваться и не работать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB