======Сборка графического интерфейса 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