======Сборка графического интерфейса FShell (VS 2008)======
Здесь приводится подробное описание действий, которые необходимо выполнить для сборки графического интерфейса (оболочки) //FShell//.
=====Общее описание оболочки FShell=====
Оболочка //FShell// предназначена для препроцессинга и постпроцессинга комплексных моделей системы ФРУНД.
Разработка //FShell// осуществляется
* средствами //Microsoft Visual Studio 2008//
* на платформе //.NET Framework 2.0//
* с использованием языков
* //C#//,
* //Managed Extensions for C++//,
* //Native C++//.
=====Перед тем, как собрать оболочку FShell=====
Перед сборкой оболочки //FShell// следует убедиться, что выполнены следующие требования:
* к операционной системе:
* не ранее //Windows XP SP3//;
* к системному ПО:
* //Open CASCADE//,
* //VTK//,
* //.NET Framework 2.0//,
* [[http://tortoisesvn.net|TortoiseSVN]] --- клиент для системы контроля версий //Subversion//;
* к средствам разработки:
* //Microsoft Visual Studio 2008// с компиляторами //C#// и //C++//.
=====Подготовительные действия=====
- Скачать с //SVN//-репозитория [[svn:///dump.vstu.ru/frund|исходные коды]] ФРУНД.
- Установите клиент //TortoiseSVN//.
- Щелкните правой кнопкой в папке или на рабочем столе. В выпадающем меню появятся 2 пункта((Если указанные пункты не появились в контекстном меню, перезагрузите компьютер.)):
* //SVN Checkout//,
* //Tortoise SVN//.
- Выберите пункт //SVN Checkout//.
- В появившемся окне в поле //URL of repository// введите:
* для загрузки всего репозитория ''svn://dump.vstu.ru/frund'';
* для загрузки рабочей ветки ''svn://dump.vstu.ru/frund/utilf_sources/Developing'' (см. [[developing_branch_description|описание каталогов]]).
- Оболочка //FShell// использует библиотеки визуализации //OpenCASCADE 6.3// и //VTK 5.6 (Vizualization toolkit)//. Для сборки //FShell// необходимо установить эти библиотеки.
- Скомпилированные библиотеки((О компиляции библиотек [[howtobuildvtk|VTK]] и [[howtobuildopencascade|Open CASCADE]] см. соответствующие разделы.)) можно взять здесь:
* {{VTK561_vc9_x86_x64.7z|VTK}},
* {{OCC63_vc9_x86_x64.7z|Open CASCADE}}.
- Архив с библиотекой //VTK// следует распаковать в каталог ''С:\VTK561'' и установить переменную окружения //VTKROOT// в значение ''C:\VTK561''.
- Архив с библиотекой //Open CASCADE// в каталог ''C:\OCC63'' и установить переменную окружения //CASROOT// в значение ''C:\OCC63''.
- Для разработки необходим каталог ''_distr'', содержащий данные, необходимые для корректного запуска //FShell//.
- Архив с каталогом ''_distr'' можно взять [[http://frund.vstu.ru/vm|на кафедре ВМ]].
=====Порядок сборки оболочки FShell=====
Для сборки оболочки //FShell// необходимо открыть файл ''/Developing/VSProjects/FShell.sln'' в //Microsoft Visual Studio 2008//. Данный //solution// состоит из множества других проектов, написанных на разных языках программирования.
{{fshell_solution_window_vs2008.jpg|Структура проекта в MS VS 2008}}
====Описание проектов оболочки FShell====
В следующей таблице приведено краткое описание проектов.
^ Наименование проекта ^ Описание ^ Тип ^ Язык ^
| //Frund// | Сущности предметной области | Библиотека классов | //C#// |
| //Crom.Controls// | Реализация //docking//-интерфейса | Библиотека классов | //C#// |
| //FSolveParamSetForms// | Диалоговые окна\\ для редактирования параметров решения\\ модели ФРУНД | Библиотека классов | //C#// |
| //MenuExtender// | Расширение возможностей стандартного меню | Библиотека классов | //C#// |
| //shell// | Доступ к библиотекам, написанным на //С++// | Динамическая библиотека | //Managed Extensions for C++// |
| //ControllerFmodel// | Контроллер модели | Библиотека классов | //C#// |
| //provider_frm// | Сущности предметной области | Статическая библиотека | //С++// |
| //fthrow// | Генератор исключений | Статическая библиотека | //С++// |
| //provider_grid// | Работа с сеточными моделями тел | Статическая библиотека | //C++// |
| //provider_animation// | Работа с анимацией | Статическая библиотека | //C++// |
| //provider_res// | Работа с файлом результатов //MBS//-расчета | Статическая библиотека | //C++// |
| //provider_processors// | **???** | Динамическая библиотека | //C++// |
| //occ// | Ядро графической подсистемы | Статическая библиотека | //C++//,\\ с использованием библиотек\\ //VTK// и //Open CASCADE// |
====Зависимости проектов====
На следующей диаграмме показаны зависимости проектов друг от друга.
{{fshell_pacakage.png|Диаграмма пакетов (зависимости проектов)}}
====Порядок сборки проектов====
На следующей диаграмме представлен порядок сборки проектов.
digraph finite_state_machine {
rankdir=LR;
size="12"
node [shape = doublecircle]; FShell;
node [shape = circle];
Frund -> FShell;
FSolveParamSetForms -> FShell;
MenuExtender -> FShell;
CromControls ->FShell;
Frund -> shell;
shell -> FShell;
Frund -> ControllerFModel;
ControllerFModel -> FShell;
provider_frm -> shell;
provider_res -> shell;
provider_animation -> shell;
provider_grid -> shell;
occ -> shell;
ftrhow -> shell;
}
====Конфигурации сборки====
В проекте настроено четыре конфигурации для сборки //FShell//. Конфигурации являются возможными комбинациями значений
* типа сборки //Configuration//:
* //Debug// --- отладочная сборка,
* //Release// --- готовая сборка;
* типа платформы //Platform//:
* //x86// --- для платформы //Windows 32-bit//,
* //x64// --- для платформы //Windows 64-bit//.
В следующей таблице представлена информация о каталогах, в которые осуществляется вывод скомпилированных бинарников.
^ Каталоги ^^ Тип сборки ^^
^ ::: ^^ //Debug// ^ //Release// ^
^ Платформа ^ //x86// | ''/Developing/_Debug/bin'' | ''/Developing/_Release/bin'' |
^ ::: ^ //x64// | ''/Developing/_Debug/bin64'' | ''/Developing/_Release/bin64'' |
====Добавление проектов====
===Добавление проектов на языке C#===
Проекты на языке //C#// должны соответствовать платформе //.NET Framework 2.0// (не выше). Проекты //C#//, используемые //FShell//, располагаются в каталоге ''/Development/FShell''. В новом проекте необходимо настроить параметры для конфигураций //x86// и //x64// и удалить конфигурацию //Any CPU//.
===Добавление проектов на языке C++===
FIXME