OberonCore
https://forum.oberoncore.ru/

Пример комплектации из открытых компонентов
https://forum.oberoncore.ru/viewtopic.php?f=1&t=5238
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Среда, 22 Октябрь, 2014 13:58 ]
Заголовок сообщения:  Пример комплектации из открытых компонентов

Приведу ради примера инструкцию по сборке клиентской части нашей информационной системы. Видимо, нужно сперва прокомментировать, отчего всё так устроено. Так заведено, что ядро ББ лежит в одном каталоге, открытые компоненты в другом, а подсистемы информсистемы в третьем. Так легче контролировать. Но исторически сложилось, что в каталог ядра ББ попали некоторые другие открытые компоненты и в таком виде был настроен обновлятор. Поэтому в инструкции некоторые компоненты кладутся в 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 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Монументально :)
А ведь давно замечено, что у подсистем/компонентов нет никакой программной основы. Даже функция вычисления имени каталога/файла в модуле Kernel опирается на довольно простое правило, которое частично ошибочно на файловых системах с регистронезависимыми именами.

Автор:  Иван Кузьмицкий [ Вторник, 28 Октябрь, 2014 13:14 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Что подразумевается под "программной основой компонента\системы"?

Автор:  Пётр Кушнир [ Вторник, 28 Октябрь, 2014 15:23 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Ну, например, для модуля есть слово MODULE в языке. Для строк есть слово STRINGS в документации модуля Dialog. Для менюшек есть MENU. А для компонента/подсистемы - ничего нет.

Автор:  Иван Кузьмицкий [ Вторник, 28 Октябрь, 2014 15:42 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Ну это интересная тема, да. Мы уже имеем формализм модуля и неформальные концепции компонента и подсистемы. Как только мы формализуем новое понятие, скажем, Subsystem, как сразу придём к парадоксу Рассела. Можно ли объединять подсистемы и является ли такое объединение экземпляром Subsystem или нет? В каких отношениях состоит модуль и подсистема? А подсистема подсистем? Подсистема подсистем подсистем?

Автор:  Борис Рюмшин [ Вторник, 28 Октябрь, 2014 16:14 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Подсистему к хаосу — это суррогат, а компонент доопределить следует.

Автор:  Иван Кузьмицкий [ Вторник, 28 Октябрь, 2014 16:18 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

Я - за. Хотя бы на уровне библиотеки, как Dialog.String.

Автор:  Пётр Кушнир [ Вторник, 28 Октябрь, 2014 19:11 ]
Заголовок сообщения:  Re: Пример комплектации из открытых компонентов

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/